shell入門第五講

1、位置變量
位置變量指的是腳本(或者函數)后跟的第n個參數。我們這里暫時先討論腳本傳參的用法。
位置變量需要使用到形如 $1、$2、$3、$4、$5、$6。其中$1表示第一個參數,$2表示第二個參數,依次往后類推即可,我們來看看使用效果。
1.1、簡單的腳本參數傳遞
先寫個簡單的腳本
bash [[email protected] ~]# cat test.sh !/bin/bash echo "第一個參數:$1" echo "第二個參數:$2" echo "第三個參數:$3"
我們寫了這樣的一個腳本,一共是傳入三個參數,然后在腳本里面分別引用三個參數的值,現在來執行一下。
注意先賦予x權限
bash [[email protected] ~]# ./test.sh 11 22 33 第一個參數:11 第二個參數:22 第三個參數:33
我們使用 ./ 執行的時候,分別在腳本后面傳入11、22、33這三個數值,然后在腳本內部我們已經提前定義好了引用變量,那么在執行的時候就可以把三個參數的值打印出來。
1.2、位置變量控制
使用shift關鍵字可以實現對位置變量的控制,比如我們寫個腳本
bash [[email protected] ~]# cat test.sh !/bin/bash echo "第一個參數:$1" shift echo "第二個參數:$2" echo "第三個參數:$3"
現在來執行一下,這次我們傳入四個參數
bash [[email protected] ~]# ./test.sh 11 22 33 44 第一個參數:11 第二個參數:33 第三個參數:44
喔?我們發現打印的結果中,第二個參數居然是33,然而我們傳參的時候的22這個參數并沒有引用到,這就是shift的作用,每執行依次shift命令,位置變量個數就會減一,而變量值則提前一位。
當然也可以設置移動n位,我們不必寫上n個shift命令,而直接使用shift n即可,比如:
bash [[email protected] ~]# cat test.sh !/bin/bash shift 3 echo "第一個參數:$1" echo "第二個參數:$2" echo "第三個參數:$3"
再來執行一下
bash [[email protected] ~]# ./test.sh 11 22 33 44 55 66 第一個參數:44 第二個參數:55 第三個參數:66
使用shift n,那么位置變量向前移動n位,因此我們的結果是從第四個參數開始引用的,大家都學會了嘛?
1.3、注意事項
當然小伙伴可能會問 $0 表示什么呢?我們來執行一下看看,還是先寫個腳本
bash [[email protected] ~]# cat test.sh !/bin/bash echo "第0個參數:$0" echo "第一個參數:$1" echo "第二個參數:$2" echo "第三個參數:$3"
執行一下看看
bash [[email protected] ~]# ./test.sh 11 22 33 第0個參數:./test.sh 第一個參數:11 第二個參數:22 第三個參數:33
或者使用bash執行看看
bash 第三個參數:33 [[email protected] ~]# bash test.sh 11 22 33 第0個參數:test.sh 第一個參數:11 第二個參數:22 第三個參數:33
發現他們兩個共同點就是,$0表示執行的文件名本身,我想這里大家應該都明白了吧?
還有一個注意點就是:我們使用$1、$2…像這樣的傳遞的參數引用時,從第10個開始我們要加上花括號來調用,比如:${10}、${11},一定要加上花括號?。?!

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
股票走势分析