Linux shell script if condition control flow methods All In One

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

  1. if command (命令)
  2. test condition (整數數值、字符串、文件)
  3. [ condition ] 單方括號 (整數數值、字符串、文件)
  4. [[ condition ]] 雙方括號 (浮點數數值、字符串、文件)

(整數) 數值比較

# 等於
-eq
# 不等於
-ne

# 大於
-gt
# 大於等於
-ge

# 小於
-lt
# 小於等於
-le

image

字符串比較

# 等於
=
# 不等於
!=

# 小於 (⚠️ 單方括號中使用需要轉義 \<)
<
# 大於 (⚠️ 單方括號中使用需要轉義 \>)
>

# 字符串長度不爲零 not zero
-n
# 字符串長度爲零 zero
-z

⚠️ 單方括號中使用需要轉義 \<
⚠️ 單方括號中使用需要轉義 \>

雙方括號中使用不需要轉義 🚀

image

文件比較

# 目錄/文件夾 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

image

# if command; then
if pwd; then
  echo "print current path"
fi

# or
if pwd
then
  echo "print current path"
fi

image

var1=3
var2=7
# test condition
if test $var1 -gt $var2; then
  echo "$var1 great than $var2"
else
  echo "$var1 little than $var2"
fi

image

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

image

var1=3
var2=7
# [[ condition ]], 雙方括號 / double square brackets
#⚠️ 注意雙方括號的兩邊必須各有一個空格
if [[ $var1 > $var2 ]]; then
  echo "$var1 great than $var2"
else
  echo "$var1 little than $var2"
fi

image

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, 禁止轉載 🈲️,侵權必究⚠️!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章