$0
獲取當前執行shell的指令碼名。
$n獲取當前shell第n個引數,當大於9時,則用花括號括起來,例如$,接的引數一空格隔開
$#獲取當前執行shell指令碼後面接的引數的個數
$*獲取當前shell指令碼所有傳參的引數。不加引號和@相同
。如果加
上引號,
如"
@相同。如果加上引號,如"
@相同。如果
加上引號
,如"*",則表示將所有的引數視為單個字串,相當於"$1$2$3$4"
$@獲取當前shell指令碼所有傳參的引數。不加引號和$*相同。加上引號,則把所有的引數當作不同的單利字串,相當於"$1"、"$2"。
區別:當加雙引號時,兩者有區別,當不加雙引號時,二者無區別
以下通過例子進行說明:
[root@localhost testshell]
# cat test02.sh
#!/bin/sh
set--
"you are" a man
#獲取指令碼路徑
echo `dirname $0`
#獲取指令碼名
echo `basename $0`
#輸出個數
echo
"字串的個數為:$#"
#分別列印引數
echo
"第乙個值:"
$1echo
"第二個值:"
$2echo
"第三個值:"
$3# 測試 $* 和 $@ 不加引號
echo
"測試結果如下:"
for i in $*
doecho
$idone
echo
""echo
"測試結果如下:"
for i in $@
doecho
$idone
# 測試 $* 和 $@ 加引號
echo
"測試結果如下:"
for i in "$*"
doecho
$idone
echo
""echo
"測試結果如下:"
for i in "$@"
doecho
$idone
執行輸出結果如下:
[root@localhost testshell]
# sh /testshell/test02.sh
/testshell
test02.sh
字串的個數為:3
第乙個值: you are
第二個值:a
第三個值:man
測試結果如下:
youare
aman
測試結果如下:
youare
aman
測試結果如下:
you are a man
測試結果如下:
you are
aman
shell指令碼中一些特殊變數
在shell指令碼中,一些常見的特殊變數表示方式還是需要知道的 如下就是一些經常用到的特殊變數表示方法 0 當前指令碼名 1 2.傳入指令碼or函式的引數 大於10需大括號括起來 傳入指令碼or函式的引數個數 列印所有傳入引數 列印所有傳入引數 當傳入引數有雙引號時,是整體輸出,是每個引數輸出 上個...
Shell中的一些特殊變數
shell中的一些特殊變數 shell中的一些特殊變數 shell中的特殊變數 0 shell或shell指令碼的名字 以一對雙引號給出引數列表 將各個引數分別加雙引號返回 引數的個數 代表上乙個命令的最後乙個引數 代表所在命令的pid 代表最後執行的後台命令的pid 代表上乙個命令執行後的退出狀態...
shell指令碼中一些特殊符號
1 大括號 用法一 萬用字元擴充套件 eg ls my s 這條命令相當於如下命令的組合 ls my fingers my toes eg mkdir 我們將得到 usera home,usera bin,usera data,userb home,userb bin,userb data,user...