<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      shell腳本中的$0、$n、$#、$-、$?、$!、$$、$*、$@等和shift

      ??我們寫別人shell腳本的時候,常會看到$0、$?、$!、$$、$*、$#、$@這樣的參數,他們表示什么含義呢?

      ??先看一段腳本打印一下日志:

          #!/bin/bash
          
          echo 當前執行腳本: $0
          echo 參數個數: $#
          echo 參數列表: $@
          arguments=($@)
          for i in $(seq 1 $#); do
            echo 第$i個參數是: ${arguments[`expr $i - 1`]}
          done
          
          echo 參數列表: $*
          arguments=($*)
          for i in $(seq 1 $#); do
            echo 第$i個參數是: ${arguments[`expr $i - 1`]}
          done
          
          echo 當前shell啟動時的選項標志: $-
          echo 上一條命令執行后的狀態: $?
          echo 當前shell的進程ID: $$
          
          echo 這里在一個后臺進程輸出 &
          echo shell最后一次運行的后臺進程ID: $!

      ??執行后得到結果:bash ./demo.sh a b c

      ??

          說明:
          $0    表示當前的執行腳本路徑,如果是絕對路徑,那么結果就是絕對路徑,如果是相對路徑,結果就是相對路徑
          $#    表示腳本傳進來的時候的參數個數
          $n    n是大于0的正整數,表示第n個參數,比如$1表示第一個參數,$2表示第二個參數,$5表示第5個參數
          $@    參數列表,每個參數作為單獨引用
          $*    參數列表,以一個單字符串顯示所有向腳本傳遞的參數
          $?    當前shell上一個命令執行后的狀態,0表示成功正確執行,否則表示異常代碼
          $$    當前shell執行的進程ID
          $!    當前shell最后一次啟動的后臺進程的ID
          $-    當前shell的選項標志,表示當前shell的一些設置等,常見的返回結果有
              i:交互模式
              m:監控模式
              B:使用括號展開
              H:歷史擴展
              x:跟蹤模式
              v:verbose模式
              K:禁止globbing(文件名擴展)
              h:禁止hashing(命令查找優化)

      ??$@$*

      ??這兩個經常拿來比較,相同點是都可以獲取到所有參數,卻別在于參數的傳遞方式不一樣,比如:

          #!/bin/bash
      
          echo "-- \$* 演示 ---"
          for i in "$*"; do echo $i; done
      
          echo "-- \$@ 演示 ---"
          for i in "$@"; do echo $i; done

       ??

      ??可以看到,$*把所有參數放到一個字符串里面視為一個參數了,而$@是將它們分開了,但是再未使用引號時,兩者作用是一樣的。

      ??在應用中,我們廠使用$@來傳遞參數,使用$*來打印內容:??

          # 使用引號包著,表示把當前腳本的所有參數逐個傳遞
          bash test.sh "$@"
          # 打印或者在當前腳本使用
          echo 參數列表:$*

      ??shift

      ??這里說下shift,因為我們在寫腳本時,往往會使用$@來傳遞所有的參數,但是往往我們可能有這種需求,我們需要傳遞的是$@參數列表從第二個參數開始的數據,因為第一個參數可能有特殊含義,這種做法在很多命令里面是很常見的,這個時候,shift可以幫助我們進行在參數列表中進行偏移,看下代碼就明白了

          #!/bin/bash
        
          echo 當前的參數列表:$*
          echo 當前的參數列表:$@
      
          shift
          echo 當前的參數列表:$*
          echo 當前的參數列表:$@
      
          shift
          echo 當前的參數列表:$*
          echo 當前的參數列表:$@

      ??執行命令:bash demo.sh a b c d

      ??

       

      posted @ 2025-06-02 17:12  沒有星星的夏季  閱讀(311)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码高潮爽到爆的喷水视频app | 人妻精品久久久无码区色视| 巴南区| 国产av一区二区麻豆熟女| 偷拍精品一区二区三区| 日本边添边摸边做边爱的网站| 成人国产精品三上悠亚久久 | 在线观看无码不卡av| 日韩人妻无码一区二区三区99| 久操热在线视频免费观看| 性欧美VIDEOFREE高清大喷水| 精品国产精品三级精品av网址| 精品视频国产狼友视频| 亚洲精品一区二区区别| 宁远县| 蜜桃av亚洲精品一区二区| 五月婷婷激情视频俺也去淫| 亚洲人成网线在线播放VA| 亚洲欧美综合一区二区三区| 日韩在线观看中文字幕| 国产成人午夜福利院| 中文字幕乱码熟妇五十中出| 日韩无码视频网站| 国产熟睡乱子伦视频在线播放| 欧美大胆老熟妇乱子伦视频 | 人人爽人人爽人人片av东京热| 国产欧美日韩高清在线不卡| 成人免费av色资源日日| 久久综合亚洲色一区二区三区| A毛片终身免费观看网站| 色爱av综合网国产精品| 一个色的导航| 潮喷失禁大喷水无码| 国产精品黄色一区二区三区| 四虎永久免费高清视频| 国产精品亚洲综合色区丝瓜 | 午夜精品久久久久久久2023| 精品少妇av蜜臀av| 亚洲综合91社区精品福利| 亚洲女同精品中文字幕| 内射干少妇亚洲69XXX|