Bash If语句带有用户输入

时间:2017-08-15 00:13:52

标签: linux bash shell

我正在尝试创建一个bash脚本,它将提示用户输入询问用户想要连接的vpn隧道。 所以,例如..有pvn1和vpn2所以它需要是这样的: 据我所知,它的当前状态是伪代码..

read -p "Connect to vpn1 or vpn2? (enter vpn1 or vpn2)"

if vpn1
        then /path/to/vpn/cert
if vpn2
        then /path/to/vpn/cert

我很感激对此的一些指导,因为我在网上找到的唯一的东西是“是/否”输入回复..但这些通常是[如果“是”然后做“这个”..如果“没有或其他”而不是“没有或退出”...

这个例子对于我需要做的事情来说太简单了。我需要为“vpn1”运行一个确切的bash命令,为“vpn2”运行另一个确切的bash命令

我感谢所有帮助:)

2 个答案:

答案 0 :(得分:2)

您需要为read命令提供一个变量,然后进行比较。

read -p "Connect to vpn1 or vpn2? (enter vpn1 or vpn2)" vpn
case "$vpn" in
    vpn1) do stuff ;;
    vpn2) do other stuff ;;
    *) echo "Enter vpn1 or vpn2" ;;
esac

do stuffdo other stuff替换为您希望在每种情况下运行的实际命令。

答案 1 :(得分:0)

试试这个:

read -p "vpn1 or vpn2? (Enter vpn1 or vpn2)" vpn
if [[ $vpn == "vpn1" ]]
   then 
       /path/to/vpn1/cert
elif [[ $vpn == "vpn2" ]]
   then
       /path/to/vpn2/cert
else 
    echo "vpn1 or vpn2 has to be entered in order to continue"
fi