bash腳本編程之二——條件判斷

bash中如何實現條件判斷?
express

條件測試類型:bash

    整數測試
ide

    字符測試    
測試

    文件測試
it


條件測試的表達式:io

    [ expression ]
class

    [ [ expression ] ]
test

    test expression
變量

整數比較:file

    -eq :測試兩個整數是否相等;例如 $A -eq $B 相等爲真(0),不等爲假

[root@localhost ~]# A=2

[root@localhost ~]# B=3

[root@localhost ~]# [ $A -eq $B ]

[root@localhost ~]# echo $?

1

    -ne:測試兩個整數是否不相等;不等爲真(0),等則爲假(1)。

    -gt:測試一個數是否大於另外一個數;大於爲真(0),不然爲假(1-255)。

    -lt:測試一個數是否小於另外一個數;小於爲真(0),不然爲假(1-255)。

    -ge:大於或等於。

    -le:小於或等於。


命令間的邏輯關係:

    邏輯與:&&  

        第一個條件爲假,第二個條件不用判斷,最終結果已經有。

        第一個條件爲真,第二個條件必須判斷。

    邏輯或:||


例:若是用戶user5不存在,就添加用戶user5

# ! id user5 && useradd user5

    或

#id user5 || useradd user5


例:若是/etc/inittab文件的行數大於20,就顯示大文件;

# [ `wc -l /etc/inittab | cut -d' ' -f1` -gt 20 ] && echo "large file"

large file


變量名稱準則:

    一、只能包含字母、數字和下劃線,而且不能數字開頭。

    二、不該該跟系統已有的環境變量重名。

    三、最好作到見名知意。


例:若是用戶存在,就顯示用戶已存在;不然就添加此用戶

# id user1 && echo "user1已存在" || useradd user1


例:若是用戶不存在,就添加此用戶;不然就顯示用戶已存在;

# ! id user2 && useradd user2 || echo "user2已存在"


例:若是用戶不存在就添加此用戶並給密碼,不然就顯示用戶已存在

#!id user3 && useradd user3 && echo "user3" | passwd --stdin user3 || echo "user3已存在"


例:添加用戶user1 user2 user3;但要先判斷用戶是否存在,不存在就添加用戶 ,再顯示一共多少個用戶。

#!/bin/bash

! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 &>dev/null ||$

! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &>dev/null ||$

! id user3 &> /dev/null && useradd user3 && echo "user3" | passwd --stdin user3 &>dev/null ||$


users=`wc -l /etc/passwd | cut -d' ' -f1`

echo "$users users."



例:給定一個用戶

    一、若是其UID爲0,就顯示爲管理員;

    二、不然,就顯示爲普通用戶

#!/bin/bash

#

name=user1

userid=`id -u $name`

[ $userid -eq 0 ] && echo "admin" || echo "common user"


條件判斷,控制結構:

    單分支if語句

                            if判斷條件

        if 判斷條件; then        then

           statement1             statement1    

          statement2      或     statement2

           ......               ......

        fi              fi


雙分支的if語句:

                if判斷條件

if判斷條件; then        then

    statement1        stament1

    statement2        stament2

     ......           ......

else           或    else

    statement3           stament3

    statement4        stament4

     ......            ......

fi                fi

相關文章
相關標籤/搜索