我正在尝试编写一个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
提前谢谢
答案 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