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



我正在学习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 甚至没有退出。知道吗?

真的很感激。

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

相关内容

  • 没有找到相关文章

最新更新