bash中,陣列變數的賦值有兩種方法:
(1) name = (value1 ... valuen)此時下標從0開始
(2) name[index] = value
下面以乙個簡單的指令碼來說明,指令碼內容如下:
#!/bin/shuntil [ $# -eq 0]
doecho "第乙個引數為: $1 引數個數為: $#"
shift
done
執行以上程式x_shift.sh:
[root@ay1404171530212980a0z test]# ./test 11 22 33 44 55 66 77
結果顯示如下:
第乙個引數為: 11 引數個數為: 7第乙個引數為: 22 引數個數為: 6第乙個引數為: 33 引數個數為: 5第乙個引數為: 44 引數個數為: 4第乙個引數為: 55 引數個數為: 3第乙個引數為: 66 引數個數為: 2第乙個引數為: 77 引數個數為: 1
從上可知 shift 命令每執行一次,變數的個數($#)減一,而變數值提前一位,
下面**用 until 和 shift 命令計算所有命令列引數的和。
#!/bin/shif [ $# -eq 0]
then
echo "usage:x_shift2.sh 引數"exit 1
fisum=0
until [ $# -eq 0]
dosum=`expr $sum + $1`
shift
done
echo "sum is: $sum"
執行上述程式:
[root@ay1404171530212980a0z test]# ./test2 11 22 33 44 55 66 77sum is: 308
shift 命令還有另外乙個重要用途, bash 定義了9個位置變數,從 $1 到 $9,這並不意味著使用者在命令列只能使用9個引數,借助 shift 命令可以訪問多於9個的引數。
shift 命令一次移動引數的個數由其所帶的引數指定。例如當 shell 程式處理完前九個命令列引數後,可以使用 shift 9 命令把 $10 移到 $1。
Shell程式設計中Shift的用法
位置引數可以用shift命令左移。比如shift 3表示原來的 4現在變成 1,原來的 5現在變成 2等等,原來的 1 2 3丟棄,0不移動。不帶引數的shift命令相當於shift 1。非常有用的 unix 命令 shift。我們知道,對於位置變數或命令列引數,其個數必須是確定的,或者當 shel...
Shell程式設計中Shift的用法
位置引數可以用shift命令左移。比如shift 3表示原來的 4現在變成 1,原來的 5現在變成 2等等,原來的 1 2 3丟棄,0不移動。不帶引數的shift命令相當於shift 1。非常有用的 unix 命令 shift。我們知道,對於位置變數或命令列引數,其個數必須是確定的,或者當 shel...
Shell程式設計中Shift的用法
位置引數可以用shift命令左移。比如shift 3表示原來的 4現在變成 1,原來的 5現在變成 2等等,原來的 1 2 3丟棄,0不移動。不帶引數的shift命令相當於shift 1。非常有用的 unix 命令 shift。我們知道,對於位置變數或命令列引數,其個數必須是確定的,或者當 shel...