1. 程式人生 > >shell 編程if條件判斷與if 真假判斷

shell 編程if條件判斷與if 真假判斷

if 真假 與 條件判斷

if條件判斷與if真假判斷


目錄:

1.正確寫法

2.錯誤寫法

3.總結


一、正確寫法

在編寫shell腳本時,為簡化代碼的行號及結構的簡約型,通常將命令執行結果和判斷通過一條語句進行編寫(在C語言編寫程序時,經常遇到此種寫法),如:

[[email protected] ~]#touch test.sh

if useradd root &>/dev/null ; then #如果用戶添加成功,則不顯示,否則顯示用戶添加失敗
echo "user1 created successfu" &>/dev/null

else
echo "user1 created failed"

fi
[[email protected] ~]#chmod +x test.sh

[[email protected] ~]#./test.sh

user1 created failed

二、錯誤寫法

但是如果因記憶失誤或編寫腳本習慣性,添加[ ]判斷時,腳本變為如下:

[[email protected] ~]#touch test.sh

if [ useradd user1 &>/dev/null ] ; then #如果用戶添加成功,則不顯示,否則顯示用戶添加失敗
echo "user1 created successfu" &>/dev/null


else
echo "user1 created failed"

fi
[[email protected] ~]#chmod +x test.sh

[[email protected] ~]#./test.sh #

user1 created failed

[[email protected] ~]#id user1 #用戶添加成功,本應該不顯示,但顯示添加失敗
uid=1005(user1) gid=1005(user1) groups=1005(user1)

[[email protected] ~]#userdel -r user1

######################調試模式執行###################################################

[[email protected] ~]#bash -x 4.sh
+ ‘[‘ useradd user1 ‘]‘ #命令執行成功,但顯示失敗,原因在添加[ ]條件判斷,

+ echo ‘user1 created failed‘ #條件判斷默認是判斷useradd user1添加成功後,命令結果無顯示
user1 created failed #因此默認[ -n ‘‘ ]為空,因此顯示失敗

三、總結

總結,在使用if判斷及命令執行結果的語法結構時,命令行中間切忌加判斷,條件判斷必須加條件判斷表達式。其本質是,if 真假判斷 和 if 條件判斷的區別

真假判斷 條件判斷

if cmd ; then if [ statement ]; then

cmd statement cmd statement

else else

cmd statement cmd statement

fi fi

####################################################################################

###具體詳情請咨詢微信:QQ767743577 郵箱地址: [email protected],有問必答,有答必應,人人為我,我為人人###

####################################################################################

本文出自 “每天進步一點點,自律” 博客,請務必保留此出處http://wbxue.blog.51cto.com/11831715/1964460

shell 編程if條件判斷與if 真假判斷