【发布时间】:2016-03-02 21:19:15
【问题描述】:
是的,这是一个糟糕的标题,我知道。我不知道如何用语言表达。
所以我正在运行 linux 并正在设置一个 openVPN;这很麻烦,所以我决定制作一个 BASH 脚本来为我做这件事。这就是我所拥有的。
#!/bin/bash
PROMPT_COMMAND=
echo -en "\033]0;VPNBook\a"
cd ~/Other/VPN\'s/VPNBook
if ! pgrep openvpn > /dev/null
then
echo "VPN is not running"
read -r -p "Would you like to start the VPN? [Y/n]" response
response=${response,,}
if [[ $response =~ ^(no|n)$ ]]
then
exit
else
echo "Starting VPN"
# echo "Username: vpnbook"
# echo "Password: 2Unuhust"
# sudo echo
# Line in question
sudo openvpn --config vpnbook-euro1-tcp443.ovpn
fi
else
echo "VPN is running"
read -r -p "Would you like to stop the VPN? [Y/n]" response
response=${response,,}
if [[ $response =~ ^(no|n)$ ]]
then
exit
else
echo "Stopping VPN"
sudo kill $(pidof openvpn)
fi
fi
样本输出:
Wed Mar 2 23:06:52 2016 OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Dec 1 2014
Enter Auth Username:vpnbook
Enter Auth Password:
因此,与其手动输入用户名和密码,我希望脚本自动输入它们并按回车键。 所以基本上,一旦我输入了 sudo 的密码,脚本就应该完成剩下的工作。
我做了一些谷歌搜索,据我了解,大多数事情都不起作用,因为命令没有接收信息作为参数,或者因为输入没有通过 STDIN,因为它是密码。
提前谢谢你,很抱歉,我知道这不是一个好问题。
【问题讨论】:
-
你试过像
sudo echo -e "vpnbook\n2Unuhust\n" | openvpn --config vpnbook-euro1-tcp443.ovpn这样简单的东西吗?这会将您的用户名和密码通过管道传输到 openvpn 以便在标准输入上读取。 -
@JonathanEllithorpe 运气不好。