格式1: test 條件表達式 格式2: [ 條件表達式 ] //至少應有一個空格
[ 操做符 文件或目錄 ]
[root@localhost ~]# [ -d /media/cdrom ] [root@localhost ~]# echo $? 0 //返回0表示條件成立 [root@localhost ~]# [ -d /media/cdrom/Server ] [root@localhost ~]# echo $? 1 //返回1表示條件不成立 [root@localhost ~]# [ -d /media/cdrom ] && echo "YES" //&&邏輯與,「並且」的意思 YES
[ 整數1 操做符 整數2]
-eq
:等於-ne
:不等於-gt
:大於-lt
:小於-le
:小於或等於-ge
:大於或等於[root@localhost ~]# who |wc -l 7 [root@localhost ~]# [ $(who |wc -1) -gt 5] && echo "Too many." //用戶數是否>5 Too many. [root@localhost ~]# [ $(who |wc -1) -ge 10 ] && echo">= 10." //用戶數是否>=10
[root@localhost ~]# FreeCC=$(free -m | grep "Mem:」| awk '{print $6}`) [root@localhost ~]# [ $FreeCC -It 1024 ] && echo ${FreeCC}MB //空閒內存是否< 1024MB 275MB
格式1vim
[ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2 ]
格式2bash
[ -z 字符串 ]
[root@localhost ~]# echo $LANG //測試當前語言環境 zh_ CN.UTF-8 [root@localhost ~]# [ $LANG != "en.US" ] && echo "Not en.US" Not en.US
[root@localhost ~]# read -p「是否覆蓋現有文件(yes/no) ?」ACK //測試讀入的字符串是否爲yes 是否覆蓋現有文件(yes/no) ? yes [root@localhost ~]# [ $ACK = "yes" ] && echo "覆蓋" 覆蓋
格式1:[ 表達式1 ] 操做符號 [ 表達式2 ]... 格式2:命令1 操做符 命令2...
[root@localhost ~]#[ -dletc ] && [-r /etc] && echo 「You can open it「 [root@localhost~]#[ -d/etc ] II [-d /home] && echo 「ok"
if 條件測試操做 then 命令序列 fi
[root@localhost ~]# vim test01.sh #!/bin/bash dir="/mnt/aaa/" if [ !-d $dir ] //當目錄不存在時執行 then mkdir -p $dir if
if 條件測試操做 then 命令序列1 else 命令序列2 fi
root@localhost ~]# vim test02.sh #!/bin/bash ping -c 3 -i 0.2 -W 3 $1 &> /dev/null if [ $? -eq 0 ] then //判斷ping命令的檢測結果,分別給出不一樣的提示 echo "Host $1 is up." else echo "Host $1 is down." fi
if 條件測試操做1 then 命令序列1 elif 條件測試操做2 then 命令序列2 else 命令序列3 fi
[root@localhost ~]# vim test03.sh #!/bin/bash read -p "請輸入您的分數(0-100):" a if [ $a -ge 85 ]&&[ $a -le 10 ] then echo"$a分,優秀!" //判斷分數所在區間,給出不一樣的分檔結果 elif[ $a -ge 70 ]&&[ $a -le 84 ] then echo"$a分,合格!" else echo"$a分,不合格!" fi