我正在学习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。有什么想法吗?
真的很感激。
答案 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