1. 程式人生 > >shell腳本常用(1)

shell腳本常用(1)

-o 程序 是否 命令 正常 shell腳本 用戶 之間 數值

\u 表示當前用戶名 \h 表示機器名稱 \W 表示當前工作目錄的基名 \w 表示當前工作目錄的全路徑 $0、$1、$2、$3: $0 指此shell文件的名稱 $1 指傳給shell程序的第一個參數 $2 指第二個參數 $3 指第三個參數 $# shell命令中參數的個數 $*、$@: shell命令中的所有參數 $?: shell命令或shell程序執行後的返回值或退出狀態值,是一個介於0~255之間的整數

字符串比較運算符

 =或==    判斷兩個字符串是否相等
 !=      判斷兩個字符串是否不想等
 <        左邊的字符串在ASCII碼表的順序前於右邊的字符串,只能用於[[ ]]中
 >        與<效果相反,只能用於[[ ]]
 -z       字符串是否為空
 -n       字符串是否非空
 註意:字符串比較運算符不存在“>=”或“<=”



整數比較邏輯表達式

-eq    表示等於
-ne    表示不等於
-lt    表示小於
-gt    表示大於
-le    表示小於等於
-ge    表示大於等於

上述運算符可以用於(( ))和[[ ]],整個比較表達式兩側及比較運算符兩側留有空格。
如果用於[[ ]],要註意整個邏輯表達式兩側及比較運算符兩側留有空格。
如果用於(( )),可不必留空格。
除了=和!=,[]中不能使用數學上的比較運算符。
在[[ ]]中,兩類數值比較運算符都可以使用。
在(( ))中只能使用=、!=、<、>、>=、<=,不能使用第一類比較運算符。



文件判斷與比較邏輯表達式

-e    文件存在
-f    正常文件(不是目錄或設備文件)
-s    不是空文件
-d    文件是目錄
-h    鏈接文件
-r    對當前文件用戶可讀
-w    對當前文件用戶可寫
-x    對當前文件用戶可執行
-O    當前用戶為文件所屬主
-nt    如f1 -nt f2 表示文件 f1 比 f2 新
-ot    如f1 -nt f2 表示文件 f1 比 f2 舊



如果一個變量賦值為包含空格的字符串,在[ ] 中使用這個變量時,要使用雙引號括住,而在 [[ ]] 則不需要。


多個邏輯表達式的復合

-a 或 &&    表示 與
-o 或 ||    表示 或
!           非運算符

在[ ]中使用-a、-o、!.            不能使用圓括號括住邏輯表達式構成復雜邏輯表達式,而要使用\( \)的形式,可以使用$(( ))進行邏輯表達式的復雜運算。
在[[ ]]和(( ))中使用&&、||、!    可以使用圓括號
&& 和 || 可以在兩對 [ ] 之間使用

示例:
[ 1 -lt 2] && [ 3 -gt 4 ]



case語句--語法

case expression in
value1)
    action1
;;
value2)
    action2
;;
...
*)
    action
;;
esac


*        表示任意個任意字符
?        表示一個任意字符
[ ]      表示一個取值範圍,用管道符表示邏輯或











shell腳本常用(1)