bash中 如何實現判斷
條件判斷測試類型
整數測試
字符測試
文件測試
條件測試表達式
[ expression]
[[ expressionn]]
test expression
整數比較、
-eq: 測試兩個整數是否相等
-ne:測試兩個整數是否不等
-gt: >
-lt: <
-ge:>=
-le:<=
[liaoch@liaoch ~]$ A=3
[liaoch@liaoch ~]$ B=4
[liaoch@liaoch ~]$ [ $A -eq $B ]
[liaoch@liaoch ~]$ echo $?
1
命令的邏輯關系
邏輯與:&& 第一個為假時。第二個條件不判斷
邏輯或:|| 第一個為真時,第二個條件條件不執行
如果用戶不存在就添加用戶
! id user7 && useradd user7
id user6 || useradd user6
變量名稱:
1.只能包含字母,數字下劃線,并且不能以數字開頭
不能跟已有的環境變量同名
2最好做到見名值意
#!/bin/bash
LINES=`wc -l /etc/passwd`
echo $LINES
FINLINES=`echo $LINES | cut -d' ' -f1
echo $FINLINES
[ $FINLINES -gt 100 ] && echo "/etc/passwd is big fiel" || echo "is small file"
~? ? ? ?
如果用戶存在就顯示用戶已存在:否則就添加此用戶
#!/bin/bash
LINES=`wc -l /etc/passwd`
echo $LINES
FINLINES=`echo $LINES | cut -d' ' -f1
echo $FINLINES
[ $FINLINES -gt 100 ] && echo "/etc/passwd is big fiel" || echo "is small file"
~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
如果用戶不存在,就添加用戶,否則不添加
如果用戶不存在,就添加并添加密碼,否則顯示已經存在
user6 is exists.
[root@liaoch ~]# ! id user7 && useradd user7 && ehco "user7" |passwd --stdin user7 || echo "user7 is exists."
id: user7:無此用戶
-bash: ehco: command not found
更改用戶 user7 的密碼 。
passwd: 鑒定令牌操作錯誤
#!/bin/bash
! id user6 &> /dev/null && useradd user6 && echo "user6:" | passwd --stdin user6 || echo "user6 is exists"
! id user11 &> /dev/null && useradd user11 && echo "user11:" | passwd --stdin user11 || echo "user11 is exists"
! id use87 &> /dev/null && useradd user8 && echo "user8:" | passwd --stdin user8 || echo "user8 is exists"
USERS=`wc -l /etc/passwd | cut -d: -f1`
ehco "$USERS user"
!/bin/bash
NAME=user7
USERID=` id -u $NAME`
[ $USERID -eq 0 ] && echo "admin" || echo "commom"
條件判斷控制結構
單分支if語句
if 判斷條件;then
statement1
statement2
....
fi
雙分支if語句
if 判斷條件:; then
statement1
statement2
....
else
statement3
statement4
...
fi
#!/bin/bash
#
NAME=USER1
if id user1 &> /dev/null ;then
? ? ? ? echo "$NAME exists."
else
? ? ? ? echo "$NAME is not exists."
fi
echo $NAME | passwd --stdin $NAME &> /dev/null
#!/bin/bash
#
NAME=user1
USERID=' id -u $NAME'
if [ $USERID -eq 0 ] ;then
? ? ? ? echo "$NAME IS ADMIN"
else
? ? ? ? echo "$NAME IS COMMOM"
fi
let 算術運算表達式
?let C=$A+$B
$[算術運算表達式]
?????? C=$[$A+$B]
$((算術運算表達式))
?????? C=$(($A+$B))
expr 算術運算表達式,表達式中各操作數及運算符之間要有空格,而且要使用命令引用
?????? C=`expr $A + $B`