Shell 指令碼程式設計

2021-07-13 01:43:04 字數 3005 閱讀 1501

-a file ] 如果 file 存在則為真。

[ -b file ] 如果 file 存在且是乙個塊特殊檔案則為真。

[ -c file ] 如果 file 存在且是乙個字特殊檔案則為真。

[ -d file ] 如果 file 存在且是乙個目錄則為真。

[ -e file ] 如果 file 存在則為真。

[ -f file ] 如果 file 存在且是乙個普通檔案則為真。

[ -g file ] 如果 file 存在且已經設定了sgid則為真。

[ -h file ] 如果 file 存在且是乙個符號連線則為真。

[ -k file ] 如果 file 存在且已經設定了粘制位則為真。

[ -p file ] 如果 file 存在且是乙個名字管道(f如果o)則為真。

[ -r file ] 如果 file 存在且是可讀的則為真。

[ -s file ] 如果 file 存在且大小不為0則為真。

[ -t fd ]    如果檔案描述符 fd 開啟且指向乙個終端則為真。

[ -u file ] 如果 file 存在且設定了suid (set user id)則為真。

[ -w file ] 如果 file 如果 file 存在且是可寫的則為真。

[ -x file ] 如果 file 存在且是可執行的則為真。

[ -o file ] 如果 file 存在且屬有效使用者id則為真。

[ -g file ] 如果 file 存在且屬有效使用者組則為真。

[ -l file ] 如果 file 存在且是乙個符號連線則為真。

[ -n file ] 如果 file 存在 and has been mod如果ied since it was last read則為真。

[ -s file ] 如果 file 存在且是乙個套接字則為真。

[ file1 -nt file2 ] 如果 file1 has been changed more recently than file2, or 如果 file1 exists and file2 does not則為真。

[ file1 -ot file2 ] 如果 file1 比 file2 要老, 或者 file2 存在且 file1 不存在則為真。

[ file1 -ef file2 ] 如果 file1 和 file2 指向相同的裝置和節點號則為真。

[ -o optionname ] 如果 shell選項 「optionname」 開啟則為真。

[ -z string ] 「string」 的長度為零則為真。

[ -n string ] or [ string ] 「string」 的長度為非零 non-zero則為真。

[ string1 == string2 ] 如果2個字串相同。 「=」 may be used instead of 「==」 for strict posix compliance則為真。

[ string1 != string2 ] 如果字串不相等則為真。

[ string1 < string2 ] 如果 「string1」 sorts before 「string2」 lexicographically in the current locale則為真。

[ string1 > string2 ] 如果 「string1」 sorts after 「string2」 lexicographically in the current locale則為真。

[ arg1 op arg2 ] 「op」 is one of -eq, -ne, -lt, -le, -gt or -ge. these arithmetic binary operators return true if 「arg1」 is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to 「arg2」, respectively. 「arg1」 and 「arg2」 are integers.

三、整數變數表示式

if [ int1 -eq int2 ]    如果int1等於int2   

if [ int1 -ne int2 ]    如果不等於   

if [ int1 -ge int2 ] 

如果》=

if [ int1 -gt int2 ] 

如果》if [ int1 -le int2 ] 了、

如果<=

if [ int1 -lt int2 ] 

如果<

四、字串變數表示式

if [ $a = $b ] 

如果string1等於string2  

字串允許使用賦值號做等號

if [ $string1 != 

$string2 ] 

如果string1不等於string2 

if  [ -n $string  ]             如果string 非空(非0),返回0(true)

if [ -z $string 

] 如果string 為空

if  [ $sting ]                  如果string 非空,返回0 (和-n類似)  

五、邏輯表示式

1、邏輯非 !                  

if [ ! 表示式 ]

if [ ! -d $num ] 

如果不存在目錄$num

2、邏輯與 –a

條件表示式的並列

if [ 表示式1 

–a 表示式2 ]

3、 邏輯或 -o          

條件表示式的或

if [ 表示式1 

–o 表示式2 ]

表示式與前面的=  != -d –f –x -ne -eq -lt等合用

邏輯符號就正常的接其他表示式,沒有任何括號( ),就是並列 

最常見的賦值形式,賦值前對=兩邊的變數都進行評測

左邊測變數是否為空,右邊測目錄(值)是否存在(值是否有效)

Shell 指令碼程式設計

1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...

shell指令碼程式設計

今天看看shell程式設計,記錄下期中與想象中不一樣的地方 0.注釋用 1.shell的變數賦值 your name zhm 在your name和等號中間不能有空格,這和別的語言很不一樣,那麼在使用變數時和別的語言也不一樣,要使用 your name,一般要用 一定是大括號 2.那麼如何把乙個變數...

Shell指令碼程式設計

1.linux中的變數 linux中的變數分為環境變數和普通變數,其中環境變數可以理解為全域性變數,在所有shell的子程式中都可以引用,普通變數只能在自己的shell程式中使用,程式結束後變數無法保留。設定環境變數的方法 1.export命令 使用者退出後失效 export test 123122...