巧用test判斷來寫shell指令碼

2021-07-29 14:32:00 字數 1070 閱讀 1891

巧用test判斷來寫shell指令碼

#!/bin/bash  

#輸出提示語句,請輸入乙個檔名,這個指令碼會檢測這個檔案的型別和許可權  

echo "please input a filename,then the script will check the file's type and permission"  

#獲取使用者的輸入,存放到filename變數中  

read -p "filename= " filename  

#判斷filename是否為空,如果為空則返回true,然後輸出檔名不能為空的提示,然後中斷程式  

test -z $filename && echo "filename can't be null" && exit 0  

#如果不存在這個檔案,則輸出提示語句,然後中斷程式  

test ! -e $filename && echo "$filename doesn't exit" && exit 0  

#判斷這個filename是否為檔案,如果是,將「file」賦給變數ftype  

test -f $filename && ftype="file"  

#判斷這個filename是否為目錄,如果是,將"directory"賦給變數ftype  

test -d $filename && ftype="directory"  

#判斷這個filename的許可權是否有 可讀,如果有,將"readable"賦給變數perm  

test -r $filename && perm="readable"  

#判斷這個filename的許可權是否有 可寫,如果有,將"writable"賦給變數perm  

test -w $filename && perm="$perm writable「  

#這個是判斷是否可執行的,以上三個,分別就是linux的r,w,x許可權  

test -x $filename && perm="$perm executable"  

#輸出結果嘍~  

echo "$filename type=$ftype    permssion=$perm"

巧用test判斷來寫shell指令碼

bin bash 輸出提示語句,請輸入乙個檔名,這個指令碼會檢測這個檔案的型別和許可權 echo please input a filename,then the script will check the file s type and permission 獲取使用者的輸入,存放到filenam...

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

a etc 1.中括號兩邊要有空格 2.a和 e的區別 e能取反 a不能 str1 str2 中間等號不連線,表示判斷是否相等 連線表示賦值 str1 mage str2 cai str1 str2 echo str1 mage str2 mage str1 str2 echo 用萬用字元或正規表示...

shell 條件測試 test

shell環境根據命令執行後的返回狀態值 來判斷是否執行成功,當返回值為0時表示成功,否則 非0值 表示失敗或異常。使用專門的測試工具test命令,可對條件進行測試,並根據返回值來判斷條件是否成立 返回值為0表示成立 使用test測試命令時 使用格式 檔案測試 檔案測試指的是根據給定的路徑名稱,判斷...