shell指令碼的test 邏輯判斷易錯點

2022-10-09 08:39:10 字數 636 閱讀 1148

①[ -a etc/.... ]

1.中括號兩邊要有空格

2.-a和-e的區別

-e能取反 -a不能

②[ $str1 = $str2 ] 中間等號不連線,表示判斷是否相等;連線表示賦值

str1=mage;str2=cai;[ $str1 = $str2 ];echo $?

str1=mage;str2=mage;[ $str1 = $str2 ];echo $?

③[[ ]] 用萬用字元或正規表示式 的時候使用

=~ 右側認為是正規表示式

== 右側相當於萬用字元

④非子程序

前面空格+結尾分號,如

⑤()子程序

[root@centos8 ~]#name=mage;(echo $name;name=wang;echo $name );echo $name

mage

wang

mage

[root@centos8 ~]#name=mage; ;echo $name

mage

wang

wang

⑥軟鏈結問題

rm -rf dirlink/  //將會刪除檔案

rm -rf dirlink   //將不會刪除檔案,刪除軟鏈結

Shell指令碼test命令使用總結

shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值 字元和檔案三個方面的測試。數值測試 引數說明 eq等於則為真 ne不等於則為真 gt大於則為真 ge大於等於則為真 lt小於則為真 le小於等於則為真 eg num1 100 num2 100 if test num1 eq n...

shell指令碼之test命令(六)

bin bash 數值測試 引數 說明 eq 等於則為真 ne 不等於則為真 gt 大於則為真 ge 大於等於則為真 lt 小於則為真 le 小於等於則為真 num1 10 num2 20 if test num1 eq num2 then echo num1 和 num2 相等 else echo...

巧用test判斷來寫shell指令碼

巧用test判斷來寫shell指令碼 bin bash 輸出提示語句,請輸入乙個檔名,這個指令碼會檢測這個檔案的型別和許可權 echo please input a filename,then the script will check the file s type and permission ...