shell編程裏的測試test命令基本能夠分爲3種數據類型,每種都不同。我的更傾向於理解爲條件語句的寫法規則,就是test加條件加判斷語句。shell
1 數值類型
基本能夠分爲6個判斷:-eq等於,-ne不等於,-gt大於,-lt小於,-ge大於等於,-le小於等於編程
實例:a=1;b=2bash
if test $[a] -eq $[b] #若是a等於b,那就...,-ne,-gt,,等等均可以,另外提一句,要是否是一個算式的話,能夠不加方括號,$a + $b測試
thenspa
echo "a=b" #縮進4個4個都行,習慣性縮進4個htm
else接口
echo "a!=b"字符串
ps:算式有兩種寫法:$[a + b]和`expr $a + $b`it
2 字符串
有4個判斷:= ,!= , -z (長度爲0)和-n(長度不爲0)io
實例:astr='hehehehe' ; bstr='hahahaha'
if test $astr = $bstr
then
echo "astr = bstr"
else
echo "astr !=bstr"
fi
3 文件測試
基本上有9個經常使用的參數,基本格式是test + 參數 +文件名,參數分別是:
-e:exists,存在這樣的一個文件;
-r:readable,文件是可讀的;
-w:writable,文件的可寫的;
-x:文件是可執行的,
-s:存在且不爲空
-d:directory,存在目錄
-f:file,存在且爲普通文件,
-c:文件存在並且爲字符型的特殊文件 #這個地方怎麼理解呢,能夠和ls命令中最前面的一個字符相關聯:‘-’表示文件。d則表示目錄,l表示鏈接文件,b表示設備文件裏面的可供存儲的接口設備,c表示設備文件裏面的串行端口設置。https://zhidao.baidu.com/question/1820545103813500748.htm
實例:
cd /etc
if test -f /etc/passwd #此處能夠結合與或非邏輯語句:形如 if test -e ./notFile -o -e ./bash 表示存在./notFile 或者./bash
then
echo "yes"
else
echo "no"
fi