if 表達式: shell
if 條件 then command else command fi另外一種寫法:
[ -f "~/test.sh" ] && echo "test.sh is ecisted"shell 的 if 與 C 語言 if 的區別:
【if xx then】 shell then是xx執行結果爲0執行,c是執行結果不爲0執行 函數
【if [i -ne 0]】【if (i)】 整數爲0判斷,shell與c spa
【if [ str ]】【if (strlen == NULL || strlen(str) == 0)】字符串爲空判斷,shell與c code
if特性: ci
if支持多條command以及函數執行的返回值判斷 字符串
if command == command+if $? ------- if [ $? -eq 0 ] class
if的條件表達式: test
文件: file
if [ -f file ] 文件存在判斷 command
if [ -d ... ] 目錄存在判斷
if [ -s file ] 文件存在且不爲空判斷
if [ -r file ] 文件存在可讀判斷
if [ -w file ] 文件存在可寫判斷
if [ -x file ] 文件存在可執行判斷
整數:
if [ a -eq b ] a==b判斷
if [ a -ne b ] a!=b判斷
if [ a -ge b ] a>=b判斷
if [ a -gt b ] a>b判斷
if [ a -le b ] a<=b判斷
if [ a -lt b ] a<b判斷
字符串:
if [ $a = $b ] 字符串a等於字符串b
if [ $a != $b ] 字符串a不等於字符串b
if [ -n $a ] 字符串a非空
if [ -z $a ] 字符串a爲空
if [ $a ] 字符串a非空
表達式須要帶$符號
-eq -ne -ge -gt -le -lt 只能用於整數
=用於等於判斷時須要兩邊加空格
shell沒有<或者>,只有-eq -ge -le -ht -lt
邏輯非!,邏輯與 -a,邏輯或 -o