2016-05-23 39 views
0

我正在學習bash。 在做練習時我得到了一個錯誤bash錯誤:./mac_or_linux.sh:第19行:語法錯誤:文件意外結束 - 嵌套ifs

ifs腳本要求選擇,然後顯示3條消息之一。 選擇選項後出現錯誤。

#!/bin/bash 
#nested ifs. script give user option to choose an OS. 
osch=0 
echo "1.Mac" 
echo "2.Linux" 
echo -n "Select your OS choice [1 or 2]? " 
read osch 
if [ $osch -eq 1 ] ; then 
echo "You pick up Mac" 
else #### nested if i.e if within if ###### 
if [ $osch -eq 2 ] ; then 
echo "You pick up Linux" 
else 
echo "You don't like Mac/Linux OS." 
fi 

錯誤:

[[email protected] bash_shell_script]# ./mac_or_linux.sh 
1.Mac 
2.Linux 
Select your OS choice [1 or 2]? 2 
./mac_or_linux.sh: line 19: syntax error: unexpected end of file 
[[email protected] bash_shell_script]# 

它說,它甚至不退出錯誤線19。任何想法?

真的很感激。

回答

2

shellcheck始終是一個很好的起點。錯誤是你錯過了最後的fi

當這是說,你應該知道elif

if [ "$osch" -eq 1 ]; then 
    do_stuff 
elif [ "$osch" -eq 2 ]; then 
    do_other_stuff 
fi 

而且case

case $osch in 
    1) do_stuff ;; 
    2) do_other_stuff ;; 
    *) echo "osch doesn't contain 1 nor 2" >&2 ;; 
esac 
+0

這到底發生了什麼。非常感謝您的回覆!它現在正在執行完美! –

+0

完成,抱歉,我是newover在stackoverflow –

相關問題