Linux shell script if condition control flow methods All In One
if...then...fi / if...then...else..fi / if...then...elif...then...fi
#!/usr/bin/env bash
if bug
then
echo "bug ✅"
else
echo "bug ❌"
fi
if pwd
then
echo "pwd ✅"
else
echo "pwd ❌"
fi
<<EOF
./bug.sh:行3: bug:未找到命令
bug ❌
/home/eric/Desktop/if-condition-types
pwd ✅
EOF
condition types
if
command (命令)test
condition (整數數值、字符串、文件)[ condition ]
單方括號 (整數數值、字符串、文件)[[ condition ]]
雙方括號 (浮點數數值、字符串、文件)
(整數) 數值
比較
# 等於
-eq
# 不等於
-ne
# 大於
-gt
# 大於等於
-ge
# 小於
-lt
# 小於等於
-le
字符串
比較
# 等於
=
# 不等於
!=
# 小於 (⚠️ 單方括號中使用需要轉義 \<)
<
# 大於 (⚠️ 單方括號中使用需要轉義 \>)
>
# 字符串長度不爲零 not zero
-n
# 字符串長度爲零 zero
-z
⚠️ 單方括號
中使用需要轉義 \<
⚠️ 單方括號
中使用需要轉義 \>
❓雙方括號
中使用不需要
轉義 🚀
文件
比較
# 目錄/文件夾 directory
-d
# 文件 file
-f
# 文件存在 exist
-e
# 非空文件 ❓ strings
-s
# 讀寫執行, 權限 421 => chomd + 755 / chomd +777 / chomd +x
# 可讀 read, 權限 4
-r
# 可寫 write, 權限 2
-w
# 可執行 excute, 權限 1
-x
# 文件屬主 Owner❓屬主 emoji 📿️
-O
# 文件默認組 Group
-G
# 新的文件 new
-nt
# 舊的文件 old
-ot
# if command; then
if pwd; then
echo "print current path"
fi
# or
if pwd
then
echo "print current path"
fi
var1=3
var2=7
# test condition
if test $var1 -gt $var2; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
test
等價於[]
var1=3
var2=7
# [ condition ], 單方括號 / single square brackets
#⚠️ 注意方括號的兩邊必須各有一個空格
if [ $var1 -gt $var2 ]; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
var1=3
var2=7
# [[ condition ]], 雙方括號 / double square brackets
#⚠️ 注意雙方括號的兩邊必須各有一個空格
if [[ $var1 > $var2 ]]; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
demos
#!/usr/bin/env bash
if bug
then
echo "bug ✅"
else
echo "bug ❌"
fi
if pwd
then
echo "pwd ✅"
else
echo "pwd ❌"
fi
<<EOF
./bug.sh:行3: bug:未找到命令
bug ❌
/home/eric/Desktop/if-condition-types
pwd ✅
EOF
#!/usr/bin/env bash
var1=3
var2=7
# test condition
if test $var1 -gt $var2; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
<<EOF
3 little than 7
EOF
#!/usr/bin/env bash
var1=3
var2=7
# [ condition ], 單方括號 / single square brackets
#⚠️ 注意方括號的兩邊必須各有一個空格
if [ $var1 -gt $var2 ]; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
<<EOF
3 little than 7
EOF
#!/usr/bin/env bash
var1=3
var2=7
# [[ condition ]], 雙方括號 / double square brackets
#⚠️ 注意方括號的兩邊必須各有一個空格
if [[ $var1 > $var2 ]]; then
echo "$var1 great than $var2"
else
echo "$var1 little than $var2"
fi
<<EOF
3 little than 7
EOF
(🐞 反爬蟲測試!打擊盜版⚠️)如果你看到這個信息, 說明這是一篇剽竊的文章,請訪問 https://www.cnblogs.com/xgqfrms/ 查看原創文章!
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 發佈文章使用:只允許註冊用戶纔可以訪問!
原創文章,版權所有©️xgqfrms, 禁止轉載 🈲️,侵權必究⚠️!