if的結構是什么?
if語句基本結構是這樣:
if <條件1>
then
語句1
elif <條件2>
語句2
elif <條件...>
語句...
else
語句n
fi
注意if語句中并無尖括號< >。用你的條件表達式來替換掉 <條件> 這部分。
實際根據你的需要使用elif和else。因為Bash不同于C語言,他沒有使用花括號來閉合一個作用域的寫法。Bash的if語句閉合作用域使用的是 if 的“反語”——fi。
關于 then,if的條件后面都需要加一個保留字then。你也可以把它們寫作同一行,但是需要注意的是要用分號來分隔,這些bash解釋器才知道then不是if條件的一部分。否則會報錯。
if <條件>;
then
寫法舉例
test及 [ ]條件
輸入一個數字,并判斷是否小于100
#!/bin/bash
read -p "請輸入一個數字:" a
if [ $a -lt 100 ]
then
echo "a<100"
else
echo "a>=100"
判斷當前目錄下一個文件是否存在,若存在判斷是否為目錄文件。 #!/bin/bash
read -p "請輸入一個文件名:" name
if [ -e $name ]
then
echo -n "$name存在,"
if [ -d $name ]
then
echo "并且是一個目錄"
else
echo "但不是一個目錄"
fi
else
echo "$name不存在"
其他命令作為條件
判斷當前環境中是否安裝了某一命令。
#!/bin/bash
read -p "請輸入一個命令:" var
if which $var>/dev/null
then
echo "$var存在"
else
echo "$var不存在"
if與邏輯表達式
與其他語言一樣,Bash中的if同樣可以和 與或非 組合使用。并且通過結合內部或外部的命令一起使用,能夠達到其他語言達不到的效果。
比如:
if [ -e $filename ] && rm $filename
then
echo "$filaname 不存在!"