shell程式設計裡的測試test命令基本可以分為3種資料型別,每種都不一樣。個人更傾向於理解為條件語句的寫法規則,就是test加條件加判斷語句。
基本可以分為6個判斷:-eq等於,-ne不等於,-gt大於,-lt小於,-ge大於等於,-le小於等於
例項:a=1;b=2
if test $[a] -eq $[b] #如果a等於b,那就...,-ne,-gt,,等等都可以,另外提一句,要是不是乙個算式的話,可以不加方括號,$a + $b
then
echo "a=b" #縮排4個4個都行,習慣性縮排4個
else
echo "a!=b"
ps:算式有兩種寫法:$[a + b]和`expr $a + $b`
有4個判斷:= ,!= , -z (長度為0)和-n(長度不為0)
例項:astr='hehehehe' ; bstr='hahahaha'
if test $astr = $bstr
then
echo "astr = bstr"
else
echo "astr !=bstr"
fi基本上有9個常用的引數,基本格式是test + 引數 +檔名,引數分別是:
-e:exists,存在這樣的乙個檔案;
-r:readable,檔案是可讀的;
-w:writable,檔案的可寫的;
-x:檔案是可執行的,
-s:存在且不為空
-d:directory,存在目錄
-f:file,存在且為普通檔案,
-c:檔案存在而且為字元型的特殊檔案 #這個地方怎麼理解呢,可以和ls命令中最前面的乙個字元相關聯:『
-』表示檔案。
d則表示目錄,
l表示連線檔案,
b表示裝置檔案裡面的可供儲存的介面裝置,
c表示裝置檔案裡面的串列埠設定。
例項:cd /etc
if test -f /etc/passwd #此處可以結合與或非邏輯語句:形如
iftest
-e ./notfile -o -e ./bash 表示存在./notfile 或者./bash
then
echo "yes"
else
echo "no"
fi
shell基礎命令 test命令
test 相當於test命令 判斷a和b的值是否相等 test a b echo yes echo no a b echo yes echo no 等於 不等於 eq等於 ne不等於 le小於等於 lt小於 ge大於等於 gt大於 a的值為1 b的值為2 root rhel8 mnt a b ech...
Linux shell程式設計之shell命令歷史記錄
目錄 shell的命令歷史記錄 需求 相關引數 實現步驟 系統需要乙個目錄用來記錄所有使用者的命令歷史記錄,來做安全保護。建立乙個目錄 var history,該目錄會建立檔案記錄所有登入使用者的歷史命令,檔案以 username userid.log 格式命名 預設用於記錄使用者歷史命令的檔案是當...
shell程式設計之echo命令
shell的echo命令是用於字串的輸出,格式為 echo string 1.顯示普通字串 echo it is test 結果為 it is a test2.顯示轉義字串 echo it is a test 結果為 it is a test 3.顯示變數 bin bash read name ec...