我正在学习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