您好,登錄后才能下訂單哦!
一、條件測試與比較
1、test 測試表達式 常用
test -f file && echo true||echo false
2、[ 測試表達式 ] 特別常用
[ -f file ]&& echo true||echo false
3、[[ 測試表達式 ]]
二、流程控制
1、流控制語句 if
實例1
#!/bin/bash
#獲取uid=0(root)中的0;
id=id | awk -F '[=(]' '{print $2}'
echo "your user id is:$id"
if [ $id -eq 0 ]
then
echo "root"
else
echo "not root"
fi
實例2:判斷登錄的用戶
#!/bin/bash
#$#是添加到shell 參數個數
if [ $# -eq 1 ] #或 [[ $#==1 ]] 或 (($#==1))
then
if who|grep $1 >/dev/null
then
echo $1 is active.
else
echo $1 is not active.
fi
else
echo "Usage: $0 <username>"
exit 1
fi
~
執行后的結果
[root@localhost shell]# sh if-if.sh root
root is active.
[root@localhost shell]# sh if-if.sh zabbix
zabbix is not active.
[root@localhost shell]# sh if-if.sh
Usage: if-if.sh <username>
[root@localhost shell]#
實例3 if-elif..else-fi
#!/bin/bash
##if-elif..else-fi
read -p "how lod are you? " age
#使用shell算數運算符(())進行條件測試
if ((age<0||age>120));then #[[ age < 0 || age > 120 ]]
echo "out of range !"
exit 1
fi
if ((age>=0&&age<13));then
echo "child!"
elif ((age>=13&&age<20));then
echo "callan!"
elif ((age>=20&&age<30));then
echo "P iii"
elif ((age>=30&&age<40));then
echo "P IV I"
else
echo "Sorry I asked."
fi
實例4
#!/bin/bash
##if 語句可以嵌套使用
file=$1
[ $# -ne 1 ] && echo "Usage: $0 <filename>" && exit 1
#錯誤的寫法 [ $# -ne 1 ] && echo "Usage: $0 <filename>" ; exit 1 這樣";" 不管前面的判斷是否正確都會執
行
if [ -d $file ]
then
echo "$file is a directory"
elif [ -f $file ]
then
if [ -r $file -a -w $file -a -x $file ];then
echo "you have (rwx) permissioon on $file."
else
echo "$file is file."
fi
else
echo "$fles is neither a file nor a directory."
fi
執行結果
[root@localhost shell]# vim if-elif-if-else.sh
[root@localhost shell]# sh if-elif-if-else.sh liu
you have (rwx) permissioon on liu.
[root@localhost shell]# sh if-elif-if-else.sh liub
liub is a directory
[root@localhost shell]# touch qq
[root@localhost shell]# sh if-elif-if-else.sh qq
qq is file.
[root@localhost shell]#
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。