shell邏輯判斷,if特殊用法

2021-08-15 10:59:32 字數 4146 閱讀 2448

shell中的邏輯判斷

格式1:if 條件 ; then 語句; fi

格式2:if 條件; then 語句; else 語句; fi

格式3:if …; then … ;elif …; then …; else …; fi

邏輯判斷表示式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到處都是空格

可以使用 && || 結合多個條件

if [ $a -gt 5 ] && [ $a -lt 10 ]; then

if [ $b -gt 5 ] || [ $b -lt 3 ]; then

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

a=10

b=20

if [ $a

-eq$b ]

then

echo

"$a -eq $b : a 等於 b"

else

echo

"$a -eq $b: a 不等於 b"

fiif [ $a

-ne$b ]

then

echo

"$a -ne $b: a 不等於 b"

else

echo

"$a -ne $b : a 等於 b"

fiif [ $a

-gt$b ]

then

echo

"$a -gt $b: a 大於 b"

else

echo

"$a -gt $b: a 不大於 b"

fiif [ $a

-lt$b ]

then

echo

"$a -lt $b: a 小於 b"

else

echo

"$a -lt $b: a 不小於 b"

fiif [ $a -ge $b ]

then

echo

"$a -ge $b: a 大於或等於 b"

else

echo

"$a -ge $b: a 小於 b"

fiif [ $a -le $b ]

then

echo

"$a -le $b: a 小於或等於 b"

else

echo

"$a -le $b: a 大於 b"

fi

10 -eq 20: a 不等於 b

10 -ne 20: a 不等於 b

10 -gt 20: a 不大於 b

10 -lt 20: a 小於 b

10 -ge 20: a 小於 b

10 -le 20: a 小於或等於 b

if 判斷檔案、目錄屬性

[ -f file ]判斷是否是普通檔案,且存在

[ -d file ] 判斷是否是目錄,且存在

[ -e file ] 判斷檔案或目錄是否存在

[ -r file ] 判斷檔案是否可讀

[ -w file ] 判斷檔案是否可寫

[ -x file ] 判斷檔案是否可執行

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

file="/var/www/runoob/test.sh"

if [ -r $file ]

then

echo

"檔案可讀"

else

echo

"檔案不可讀"

fiif [ -w $file ]

then

echo

"檔案可寫"

else

echo

"檔案不可寫"

fiif [ -x $file ]

then

echo

"檔案可執行"

else

echo

"檔案不可執行"

fiif [ -f

$file ]

then

echo

"檔案為普通檔案"

else

echo

"檔案為特殊檔案"

fiif [ -d

$file ]

then

echo

"檔案是個目錄"

else

echo

"檔案不是個目錄"

fiif [ -s

$file ]

then

echo

"檔案不為空"

else

echo

"檔案為空"

fiif [ -e

$file ]

then

echo

"檔案存在"

else

echo

"檔案不存在"

fi

檔案可讀

檔案可寫

檔案可執行

檔案為普通檔案

檔案不是個目錄

檔案不為空

檔案存在

if判斷的一些特殊用法

if [ -z 「$a」 ] 這個表示當變數a的值為空時會怎麼樣

if [ -n 「$a」 ] 表示當變數a的值不為空

if grep -q 『123』 1.txt; then 表示如果1.txt中含有』123』的行時會怎麼樣

if [ ! -e file ]; then 表示檔案不存在時會怎麼樣

if (($a<1)); then …等同於 if [ $a -lt 1 ]; then…

[ ] 中不能使用<,>,==,!=,>=,<=這樣的符號

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

a="abc"

b="efg"

if [ $a = $b ]

then

echo

"$a = $b : a 等於 b"

else

echo

"$a = $b: a 不等於 b"

fiif [ $a != $b ]

then

echo

"$a != $b : a 不等於 b"

else

echo

"$a != $b: a 等於 b"

fiif [ -z $a ]

then

echo

"-z $a : 字串長度為 0"

else

echo

"-z $a : 字串長度不為 0"

fiif [ -n $a ]

then

echo

"-n $a : 字串長度不為 0"

else

echo

"-n $a : 字串長度為 0"

fiif [ $a ]

then

echo

"$a : 字串不為空"

else

echo

"$a : 字串為空"

fi

abc = efg: a 不等於 b

abc != efg : a 不等於 b

-z abc : 字串長度不為 0

-n abc : 字串長度不為 0

abc : 字串不為空

shell中的case判斷

格式 case 變數名 in

value1)

command

;; value2)

command

;; *)

commond

;; esac

在case程式中,可以在條件中使用|,表示或的意思, 比如 2|3) command ;;

十六周三次課(2月6日)

20.5 shell指令碼中的邏輯判斷

20.6 檔案目錄屬性判斷

20.7 if特殊用法

20.8/20.9 case判斷

Shell指令碼中的邏輯判斷

1.格式1 if 條件 then 語句 fi ok root localhost if a 3 如果a大於3 then echo ok 輸出ok fiok root localhost if a 3 then echo ok fi ok root localhost shell vi if01.sh...

shell中括號的特殊用法

shell中的括號有其特殊的用法,現總結如下 1.符號 後的括號 變數a的值,在不引起歧義的情況下可以省略大括號.cmd 命令替換,結果為shell命令cmd的輸出,和 cmd 效果相同,不過某些shell版本不支援 形式的命令替換,如tcsh.exp 和 expr exp 效果相同,計算數學表示式...

shell中括號的特殊用法

shell中的括號有其特殊的用法,現總結如下 1.符號 後的括號 變數a的值,在不引起歧義的情況下可以省略大括號.cmd 命令替換,結果為shell命令cmd的輸出,和 cmd 效果相同,不過某些shell版本不支援 形式的命令替換,如tcsh.exp 和 expr exp 效果相同,計算數學表示式...