Shell Script 判斷式邏輯運算參數
路徑(檔案、目錄)
檔案/目錄 是否存在?
if [ -e "$path" ]; then
echo "$path is exist."
else
echo "$path not found."
fi
檔案/目錄 是否為檔案?
if [ -f "$path" ]; then
echo "$path is a file."
fi
檔案/目錄 是否為資料夾?
if [ -d "$path" ]; then
echo "$path is a directory."
fi
檔案 大小是否大於0?
if [ -s "$file" ]; then
echo "$file is not empty."
else
echo "The file size of $file is 0."
fi
其他判斷式
[ -b /dev/sda ] /dev/sda 是否為Block Device[ -c /dev/tty ] /dev/tty 是否為Character Device[ -p "$file" ] 檔案 是否為Pipe檔[ -S "$file" ] 檔案 是否為Socket檔[ -L "$file" ] 檔案 是否為連結檔[ -g "$path" ] 檔案/目錄 是否為SGID的屬性?[ -u "$path" ] 檔案/目錄 是否為SUID的屬性?[ -k "$path" ] 檔案/目錄 是否為Sticky Bit的屬性?[ -r "$path" ] 檔案/目錄 權限是否可讀?[ -w "$path" ] 檔案/目錄 權限是否可寫?[ -x "$path" ] 檔案/目錄 權限是否可執行?數字(限整數)
value1 = value2
if [ $value1 -eq $value2 ]; then
echo "$value1 is equal to $value2."
fi
等效:
[ $value1 = $value2 ]value1 ≠ value2
if [ $value1 -ne $value2 ]; then
echo "$value1 is not equal to $value2."
fi
等效:
[ $value1 != $value2 ]value1 > value2
if [ $value1 -gt $value2 ]; then
echo "$value1 is greater than $value2."
fi
value1 < value2
if [ $value1 -lt $value2 ]; then
echo "$value1 is less than $value2."
fi
value1 ≥ value2
if [ $value1 -ge $value2 ]; then
echo "$value1 is greater or equal to $value2."
fi
value1 ≤ value2
if [ $value1 -le $value2 ]; then
echo "$value1 is less or equal to $value2."
fi
字串
字串是否無值 (空字串)
if [ -z "$str" ]; then
echo "Empty string."
fi
等效:
[ "$str" == "" ] 或 [ ! "$str" ]字串是否有值 (非空字串)
if [ -n "$str" ]; then
echo "$str is not empty."
fi
等效:
[ "$str" != "" ] 或 [ "$str" ]
留言
張貼留言