linux - 带有用户输入的 Bash If 语句

标签 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

我希望得到一些指导,因为我在网上唯一能找到的是“是/否”输入响应..但这些通常是[如果"is"则执行“此”..如果“否或其他”而不是“什么都不做或退出”...

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

感谢所有帮助:)

最佳答案

你需要给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 替换为您在每种情况下要运行的实际命令。

关于linux - 带有用户输入的 Bash If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684828/

相关文章:

linux - 如何使带有sql server和dotnet app的2个容器相互通信?

MySQL 检查自增脚本 - 没有 'SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES'

linux - Openssl 不工作,目录/etc/ssl 丢失

linux - 模拟 Windows,如 UNIX 上的删除

git - Git Bash 中的元别名

c - 如何查找父进程的所有子进程(在 C 中)

linux - 先前命令执行的退出代码始终为 0——在远程 Shell 执行中 $?

linux - QEMU 仅显示黑屏

linux - 在 Linux 中杀死附加 screen

linux - 使用非标准端口在命令行上发送邮件