shell中的一些特殊變數
shell中的一些特殊變數
shell中的特殊變數: $0
shell或shell指令碼的名字 $*
以一對雙引號給出引數列表 $@
將各個引數分別加雙引號返回 $#
引數的個數 $_
代表上乙個命令的最後乙個引數 $$
代表所在命令的pid $!
代表最後執行的後台命令的pid $?
代表上乙個命令執行後的退出狀態
為了區別$*和$@編寫如下test.sh指令碼:
#!/bin/bash
function testargs
testargs "$*"
testargs "$@"
unset -f testargs
在terminal視窗中執行:
xk@linux:~/work> ./test.sh -a -b /home
1 args
3 args
xk@linux:~/work>
這裡有乙個很有意思的問題,如果test.sh為如下的內容:
#!/bin/bash
function testargs
testargs $*
testargs $@
unset -f testargs
再次執行有:
xk@linux:~/work> ./test.sh -a -b /home
3 args
3 args
xk@linux:~/work>
另,這些特殊的shell變數可以和perl中類似的變數作比較,不同哦!
Shell中一些特殊的變數
0 獲取當前執行shell的指令碼名。n獲取當前shell第n個引數,當大於9時,則用花括號括起來,例如 接的引數一空格隔開 獲取當前執行shell指令碼後面接的引數的個數 獲取當前shell指令碼所有傳參的引數。不加引號和 相同 如果加 上引號,如 相同。如果加上引號,如 相同。如果 加上引號 如...
shell指令碼中一些特殊變數
在shell指令碼中,一些常見的特殊變數表示方式還是需要知道的 如下就是一些經常用到的特殊變數表示方法 0 當前指令碼名 1 2.傳入指令碼or函式的引數 大於10需大括號括起來 傳入指令碼or函式的引數個數 列印所有傳入引數 列印所有傳入引數 當傳入引數有雙引號時,是整體輸出,是每個引數輸出 上個...
Shell中的特殊變數
感謝csdn社群 linux系統維護與使用區 板塊熱心朋友們的解答,我搞清楚了shell中特殊符號的使用,現在把總結分享一下 1.傳遞到指令碼的引數個數 2.以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,此選項引數可超過9個 3.當前shell的pid 4.後台執行的最後乙個程序的程序id...