1. 程式人生 > >Shell指令碼中$的用法

Shell指令碼中$的用法

    $0: 指令碼名稱,相對路徑還是絕對路徑要看呼叫的方式。如果是在父目錄中,./dollarTest.sh呼叫,那麼$0就是./dollarTest.sh;如果是全路徑呼叫,如"/root/test/dollarTest.sh",那麼$0就是"/root/test/dollarTest.sh"。     $n:呼叫的第n個引數。ps:如果n > 9,那麼數字需要用括號括起來,如${10},否則shell直譯器會認為是$1加上1這個數字。     $*:指令碼中的所有引數。     [email protected]:同$*。
    $#:指令碼的引數個數。     $$:改shell指令碼執行時的程序號。     $?:上一條命令的輸出結果,如果上條命令exit的返回值。     $!:上一條後臺程序執行的pid號。     !$:上一條命令的最後一個字串。     $-:使用set命令設定的flag。 以執行指令碼dollarTest.sh為例,指令碼程式碼:
#!/bin/bash

echo '$0 is ' $0
echo '$1 is ' $1
echo '$11 is ' ${11}
echo '$# is ' $#
echo '$* is ' $*
echo '
[email protected]
is ' [email protected] echo '$$ is ' $$ sh test.sh # this shell script will exit with 11 echo '$? is ' $? echo '$# is ' $# nohup ping www.baidu.com & echo '$! is ' $! echo $-
因有特殊字元,顯示不全,故用圖片顯示shell原始碼;

執行命令及引數:./dollarTest.sh 1 2 3 4 5 6 7 8 9 10 21 22 23 24 執行結果: