如何在 shell 脚本中使用从“pass”检索到的密码

如何在 shell 脚本中使用从“pass”检索到的密码

我在使用时存储了密码pass并且基于我正在尝试使用 Cisco Anyconnect 自动化 VPN 连接过程。VPN 可以正常工作,我确认了这一点。脚本我尝试使用的是:

pass=$(pass branch/key)
vpn -s connect vpn.server.host << "EOF"
0
username
"$pass"
y
exit
EOF

假设我将其另存为.connectvpn,然后source .connectvpn它应该启动 VPN 隧道并建立连接。

如果在文件中我删除了我尝试使用的变量 ( pass),并将实际密码放在第五行,我知道它可以工作。我遇到的问题是 bash 变量方法。

答案1

您的问题是您引用了分隔符"EOF".当引用此处文档的分隔符时,不会对正文执行任何参数扩展,因此您的密码将获取其字面值"$pass"。尝试使用EOF不带引号的分隔符。

相关内容