bash错误:./ mac_or_linux.sh:第19行:语法错误:意外的文件结束 - 嵌套ifs

时间:2016-05-23 22:41:59

标签: bash

我正在学习bash。 在做练习时我遇到了错误

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

错误:

[root@localhost 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
[root@localhost bash_shell_script]#

它表示甚至没有退出的错误行19。有什么想法吗?

真的很感激。

1 个答案:

答案 0 :(得分: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