測試與判斷:
退出與退出狀態(tài)
測試命令test
使用if-then語句
使用if-then-else語句
嵌套if的使用
退出程序命令
- exit
- exit 10 :返回10給shell,返回值非0 位 不正常退出
- $? 判斷當前shell前一個進程是否正常退出
測試命令test
test命令用于檢查文件或者比較值
test可以以下測試:man test進行測試绑莺。
- 文件測試 :test -f /etc/passwd echo $? ——>返回的內容:返回0仰冠,0=True
- 整數(shù)比較測試
- 字符串測試
test測試語句可以簡化為[]符號
[]符號還有擴展寫法[[ ]] 支持&& 、||、<、>。
if 判斷的使用
使用if-then語句的基本用法
if [ 測試條件成立 ] 或 命令返回值是否為0
then 執(zhí)行相應命令
fi 結束
實際例子:
if [ $UID = 0 ] ;
then
echo "please run"
fi
使用if-then-else 語句
if-then-else語句可以在條件不成立時也運行相應的命令:
if-then-else語句可以在條件不成立時也運行相應的命令:
if [ 測試條件成立 ]
then 執(zhí)行相應命令
else 測試條件不成立棒厘,執(zhí)行相應命令
fi 結束
實際例子:
if [ $UID = 0 ] ; then
echo "please run"
else
echo "stop run...."
fi
使用if-then-else語句可以在條件不成立時運行相應的命令
if-then-else語句可以在條件不成立時也運行相應的命令:
if [ 測試條件成立 ]
then 執(zhí)行相應命令
elif [ 測試條件成立 ]
then 執(zhí)行相應命令
else 測試條件不成立,執(zhí)行相應命令
fi 結束
實際例子:
if [ $USER = root ] ; then
echo "user is root.."
elif [ $USER = user1 ] ;then
echo "user is user1.."
else
echo "other user...."
fi
if條件測試中可以再嵌套if條件測試
if [ 測試條件成立 ]
then 執(zhí)行相應命令
if [ 測試條件成立 ]
then 執(zhí)行相應命令
fi
fi 結束
實際例子:
if [ $UID = 0 ] ; then
echo "please run"
if [ -x /tmp/10.sh ] ; then
/tmp/10.sh
fi
else
echo " switch user root"
fi
分支
case語句 和select 語句可以構成分支
case "$變量" in
"情況1")
命令..;;
"情況2")
命令..;;
* )
命令..;;
esac
實際例子:
case "$1" in
"start1"|"STRAT")
echo $0 start....
;;
"stop"|"STOP")
echo $0 stop....
;;
"restart"|"reload")
echo $0 restart....
;;
*)
echo $0 other....
;;
esac