一、文件相關
-e 判斷文件或者文件夾是否存在
-d 判斷目錄是否存在
-f 判斷文件是否存在
-r 判斷是否有讀權限
-w 判斷是否有寫權限
-x 判斷是否有執行權限
1.1命令行使用
[root@localhost ~]# [ ! -e test/ ] && mkdir test/ #若是test/文件夾並存在,就建立。
1.2腳本中使用,通常配合條件控制語句使用。
[root@localhost script]# cat m_t.sh
#!/bin/bash
#移動腳本文件至指定文件夾
ls *.sh > sh.txt
if [ ! -d script/ ];then
mkdir script/
fi
for i in `cat sh.txt`
do
echo $i
mv $i script/
done
二、數字相關
-gt 大於
-ge 大於等於
-eq 等於
-lt 小於
-le 小於等於
-ne 不等於
2.一、小腳本,內存使用率超過80%則提醒
[root@localhost script]# cat mem.sh
#!/bin/bash
MEM_USE=`free -m|grep "^M"|awk '{print $3/$2 *100}'|cut -d . -f1`
if [ $MEM_USE -ge 80 ];then
echo -e "\e[1;5m \e[1;31m the memory used is more then 80%\e[0m \e[0m"
else
echo -e "\e[1;5m \e[1;32m the memory used is correct...\e[0m \e[0m"
fi
三、字符串相關
-z 判斷字符串是否爲空,爲空返回 true
-n 判斷字符串是否爲空,非空返回 true
== 判斷兩個字符串是否相等 相等返回 true
!= 判斷兩個字符串是否相等 不相等返回true
3.一、命令行使用
[root@localhost ~]# name=
[root@localhost ~]# [ -z "$name" ];echo $?
0
[root@localhost ~]# [ -n "$name" ];echo $?
1
四、邏輯相關
-a 幾個條件都成立,才爲真
-o 條件只要一個爲真,即爲真
! 非
4.一、命令行使用
[root@localhost ~]# [ 2 -gt 1 -a -z "$name" ] && echo ok
ok
五、正則相關
格式:
[[ $name =~ 正則表達式]]
5.一、命令行使用
[root@localhost ~]# num=123
[root@localhost ~]# [[ $num =~ ^[0-9]+ ]] && echo ok
ok
添加用戶腳本
#!/bin/bash
read -p "請輸入用戶前綴,密碼,數量:" pre pass num
if [[ ! $num =~ ^[0-9]+ ]];then
ehco "請輸入數字"
fi
cat <<EOF
你輸入的用戶名前綴爲:$pre
你設立的密碼爲:$pass
你設定用戶個數爲:$num
EOF
while true
do
read -p "你肯定要建立?" ch
case $ch in
y|yes)
for i in `seq $num`;do
id $pre$i &>/dev/null
if [ $? -ne 0 ];then
useradd $pre$i
echo "用戶 $pre$i 建立成功..."
echo $pass|passwd --stdin $pre$i &>/dev/null
else
continue
echo "用戶 $pre$i 已經存在..."
fi
done
break
;;
n|no)
exit 1
;;
*)
echo "錯誤輸入,請從新輸入..."
esac
done