今天主要介紹下shell腳本中shift的一些用法,這個命令還是相對比較少見的。
shift命令用于對參數的移動(左移),通常用于在不知道傳入參數個數的情況下依次遍曆每個參數然後進行相應處理(常見于Linux中各種程序的啟動腳本)。
簡而言之,shift命令表示參數向左偏移,後面可跟數字(數字大小在參數個數範圍内)
1、依次讀取輸入的參數并打印參數個數:
#!/bin/bash while [ $# != 0 ];do echo "第一個參數為:$1,參數個數為:$#" shift done
輸出結果:
./run.sh a b c d e f
從上可知 shift(shift 1) 命令每執行一次,變量的個數($#)減一
(之前的$1變量被銷毀,之後的$2就變成了$1),而變量值提前一位。
同理,shift n後,前n位參數都會被銷毀。
2、測試shift n
#!/bin/bash echo "參數個數為:$#,其中:" for i in $(seq 1 $#) do eval j=\$$i echo "第$i個參數($"$i"):$j" done shift 3 echo "執行shift 3操作後:" echo "參數個數為:$#,其中:" for i in $(seq 1 $#) do #通過eval把i變量的值($i)作為變量j的名字 eval j=\$$i echo "第$i個參數($"$i"):$j" done
輸出結果:
./shift.sh a b c d e f
後面會分享更多devops和DBA方面内容,感興趣的朋友可以關注下~
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!