【发布时间】:2019-11-02 12:53:01
【问题描述】:
我正在尝试编写一个调用另一个脚本的脚本。然后它应该填写用户名和密码。不幸的是 spawn 没有调用我的脚本文件。
我创建了两个脚本,然后使用
chmod +x filename.sh 使其可执行。
vpn.sh
#! /usr/bin/expect
spawn ./startvpn.sh
#expect "[sudo] Passwort für niclas:"
#send "**********"
#expect "Enter Auth Username:"
#send '*************'
#expect "Enter Auth Password:"
#send "******"
startvpn.sh
#! /bin/bash
sudo openvpn /etc/openvpn/ovpn_udp/se250.nordvpn.com.udp.ovpn
计划:
我正在终端运行 ./vpn, 然后执行startvpn。 这将建立与 Openvpn 的连接。
然后 vpn.sh 应该输入 Sudo 密码,然后输入我的 NordVpn 用户名和密码。
奇怪的是,startvpn 从不运行。
我没有收到错误消息。
更新:
我更新了我的脚本。现在它正在工作,除了它没有输入密码。
vpn.sh 的更新版本
#!/usr/bin/expect -f
spawn sudo openvpn /etc/openvpn/ovpn_udp/se250.nordvpn.com.udp.ovpn
expect "Passwort für niclas:"
send "******\r"
expect "Username:"
send "**************\r"
expect "Password:"
send "****\r"
控制台输出是:
niclas@niclas-Inspiron-7347:~$ expect vpn.sh
spawn sudo openvpn /etc/openvpn/ovpn_udp/se250.nordvpn.com.udp.ovpn
[sudo] Passwort für niclas:
Fri Jun 28 21:03:03 2019 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019
Fri Jun 28 21:03:03 2019 library versions: OpenSSL 1.1.1 11 Sep 2018, LZO 2.08
Enter Auth Username: niclas.buerger@web.de
Enter Auth Password: niclas@niclas-Inspiron-7347:~$
如果我正常输入密码,就会填上******。 所以我真的不知道为什么它不起作用。该命令与带有用户名的命令相同。
【问题讨论】:
-
将密码存储在文本文件中非常不安全。
-
说了这么多,你还记得“回车”吗?
send "password\r" -
感谢您的回答。该脚本仅在我的 PC 上本地运行,因此它是我将其存储在 txt 文件中的最简单解决方案。我错过了进入,这是正确的。谢谢。但主要问题是当我使用 ./vpn.sh 执行 vpn.sh 时,我的 startvpn.sh 脚本永远不会执行。