shift命令用於對參數的向左移動,通常用於在不知道傳入參數個數的情況下依次遍歷每個參數,然后進行相應的處理(常見與Linux中各種程序的啟動腳本)。在掃描處理腳本程序的參數時,經常要用到shift命令。
shift命令每執行一次,參數序列順次左移一個位置,$#的值減1,用於分別處理每個參數,移出去的參數不再可用。
注意:$#表示腳本后跟隨的參數總的個數,$n可以獲取腳本后跟隨的第n個參數的值。
實例:加法計算
[root@youxi1 ~]# vim a.sh #!/bin/bash if [ $# -le 0 ] ; then echo "沒有足夠的參數" exit fi sum=0 while [ $# -gt 0 ] ; do sum=$[$sum+$1] shift done echo result is $sum [root@youxi1 ~]# sh a.sh 沒有足夠的參數 [root@youxi1 ~]# sh a.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 result is 120