Linux中變數,basename,$#,$@,$0,$1,$2,$*,$$,$? [-eq] [-ne] [-gt] [-lt] [ge] [le]的含義
$# 是傳給腳本的引數個數
$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個引數
$2 是傳遞給該shell腳本的第二個引數
$@ 是傳給腳本的所有引數的串列
$* 是以一個單字串顯示所有向腳本傳遞的引數,與位置變數不同,引數可超過9個
$$ 是腳本運行的當前行程ID號
$? 是顯示最后命令的退出狀態,0表示沒有錯誤,其他表示有錯誤
basename 是去除目錄后剩下的名字
example:shell>temp=/home/temp/1.test
shell>base=`basename $temp`
shell>echo $base
結果為:1.test
dirname 是取目錄
example:shell>temp=/home/temp/1.test
shell>dir=`dirname $temp`
shell>echo $dir
結果為:/home/temp
另一種實作的方法:
${var##*/} 就是把變數var最后一個/以及左邊的內容去掉
${var%/*} 就是把變數var最后一個/以及右邊的內容去掉
區別:@*
相同點:都是參考所有引數
不同點:只有在雙引號中體現出來。假設在腳本運行時寫了三個引數(分別存盤在12 3)則"*" 等價于 “12 3"(傳遞了一個引數);而“@" 等價于 "1""2" "$3"(傳遞了三個引數)
-eq //等于
-ne //不等于
-gt //大于 (greater )
-lt //小于 (less)
-ge //大于等于
-le //小于等于
命令的邏輯關系:
在linux 中 命令執行狀態:0 為真,其他為假
邏輯與: && -a
第一個條件為假時,第二條件不用再判斷,最終結果已經有;
第一個條件為真時,第二條件必須得判斷;
邏輯或: ||
邏輯非: !
例子一:
1 ##dels.sh 2 echo "number:$#" 3 echo "scname:$0" 4 echo "first :$1" 5 echo "second:$2" 6 echo "argume:$@" 7 echo "show parm list:$*" 8 echo "show process id:$$" 9 echo "show precomm stat: $?"
執行結果為:
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/124687.html
標籤:專題技術討論區
