语法错误:" fi"意外

时间:2014-11-13 18:06:11

标签: bash shell syntax-error

我正在尝试编写一个shell脚本,它将启动或停止openvpn,具体取决于用户输入的内容。当我运行脚本时,它正确地提示我我想要做什么。但是当我输入" 1"然后按[Enter]它输出并终止:

./control-openvpn.sh: 27: ./control-openvpn.sh: Syntax error: "fi" unexpected

这是我的代码的主要部分。这些函数位于脚本中。

# Main
echo -n "What to do? 1.Start or 2.Stop. [1/2]"
read action
if [ "$action" == "1" ]
then
    start_openvpn()
elif [ "$action" == "2" ]
then
    stop_openvpn()
fi

提前谢谢

1 个答案:

答案 0 :(得分:1)

在bash中,当你执行start_openvpn()时,你正在声明一个新函数。因此,当它看到的下一件事是fi时,bash会感到困惑。这样的事情对你有用:

read -p 'What to do? 1.Start or 2.Stop. [1/2] ' action
if [ $action -eq 1 ]; then
    start_openvpn
elif [ $action -eq 2 ]; then
    stop_openvpn
fi