1、檔案相關
-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/
fifor i in `cat sh.txt`
do echo $i
mv $i script/
done
2、數字相關-gt 大於
-ge 大於等於
-eq 等於
-lt 小於
-le 小於等於
-ne 不等於
2.1、小指令碼,記憶體使用率超過80%則提醒[root@localhost script]# cat mem.sh
#!/bin/bash
mem_use=`free -m|grep "^m"|awk ''|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
3、字串相關-z 判斷字串是否為空,為空返回 true
-n 判斷字串是否為空,非空返回 true
== 判斷兩個字串是否相等 相等返回 true
!= 判斷兩個字串是否相等 不相等返回true
3.1、命令列使用[root@localhost ~]# name=
[root@localhost ~]# [ -z "$name" ];echo $?
0[root@localhost ~]# [ -n "$name" ];echo $?
1
4、邏輯相關-a 幾個條件都成立,才為真
-o 條件只要乙個為真,即為真
! 非
4.1、命令列使用[root@localhost ~]# [ 2 -gt 1 -a -z "$name" ] && echo ok
ok
5、正則相關格式:
[[ $name =~ 正規表示式]]
5.1、命令列使用[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 "請輸入數字"
ficat if [ $? -ne 0 ];then
useradd $pre$i
echo "使用者 $pre$i 建立成功..."
echo $pass|passwd --stdin $pre$i &>/dev/null
else
continue
echo "使用者 $pre$i 已經存在..."
fidone
break
;;n|no)
exit 1
;;*) echo "錯誤輸入,請重新輸入..."
esac
done
shell條件測試
shell條件測試通常都會用在for while until if等控制流結構中,用於判斷檔案的相關性質或變數的相互關係。條件測試用法 test 表示式 結果 成立返回0,不成立返回非0 檢視結果 echo 以下是幾類常用的測試表示式 1 檔案狀態測試 b filename 當filename 存在...
shell條件測試
shell條件測試 檔案狀態測試 b filename 當filename 存在並且是塊檔案時返回真 返回0 c filename 當filename 存在並且是字元檔案時返回真 d pathname 當pathname 存在並且是乙個目錄時返回真 e pathname 當由pathname 指定的...
shell條件測試
1.數值測試 數值判斷的格式如下 數值1 關係運算子 數值2 方括號與條件之間必須要有空格 eq 兩個數值相等 lt 第乙個數值小於第二個數值 ne 兩個數值不相等 ge 第乙個數值大於第二個數值 gt 第乙個數值不小於第二個數值 le 第乙個數值不大於第二個數值 例 100 eq 100 echo...