天天看點

shell腳本中的邏輯判斷、檔案目錄屬性判斷、if特殊用法、case判斷

邏輯表達式

在[ ]中括号中:

以下是數字的比較

-lt:=little than 小于

-le:=little && equal 小于等于

-eq:=equal 等于

-ne:=no equal 不等于

-gt:=greater than 大于

-ge:=greater && equal 大于等于

字元串的比較

<,<=,==,!=,>,>=

1、if then fi

[root@centos7 shell]# vi test.sh

#!/bin/bash

a=9

if [ $a -gt 2 ]

then

echo "ok"

fi

2、多條件判斷

if then elif then elif then fi

3、

條件A&&條件B:并且

條件A||條件B:或者

4、shell腳本中if經常用于判斷文檔的屬性,比如判斷是普通檔案還是目錄檔案,判斷檔案是否有讀、寫、執行權限等。if常用的選項有以下幾個:

-e:判斷檔案或目錄是否存在

-d:判斷是不是目錄檔案以及是否存在

-f:判斷是不是普通檔案以及是否存在

-r:判斷是否有讀權限

-w:判斷是否有寫權限

-x:判斷是否有執行權限

如果檔案不存在:! -f

if [ ! -f /tmp/filename ]

echo '不存在'

5、

if [ -z "$a" ]:表示當變量a的值為空時會怎樣

if [ -n "$a" ]:表示當變量a的值不為空時會怎樣

n=<code>cat /tmp/test.txt</code>

if [ -z $n ]

echo '為空'

else

echo '不為空'

6、

判斷某參數存在:

[root@localhost sbin]# vim if1.sh

if 

grep -wq 'user1' /etc/passwd

echo "user1 exist."

[root@localhost sbin]# sh if1.sh

判斷某參數不存在:

[root@localhost sbin]# vim if2.sh

! grep -wq 'user1' /etc/passwd

echo "no user1"

[root@localhost sbin]# sh if2.sh 

no user1

格式:

case 變量名 in

value1)

commond1

;;

value2)

commod2

value3)

commod3

esac

在case中,可以在條件中使用“|”,表示或的意思,如:

2|3)

commond

本文轉自 iekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/2045021,如需轉載請自行聯系原作者