shell程式設計 之 test命令

2022-02-08 02:58:27 字數 1157 閱讀 2951

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...