【发布时间】:2018-05-30 09:14:06
【问题描述】:
我遇到了 xfce4-genmon-plugin 的问题。我用它来监控我的 vpn 连接。 每当我连接到我的 VPN(使用 openpyn 的 NordVPN)时,它都会显示一个符号以及我使用以下命令连接到的服务器:$(ps ax | grep $(pidof openvpn) | perl -n -e '// (\w+) .nordvpn.com/ && print $1')
我最近决定也希望它显示我当前的 IP 地址 (WAN)
我编写了一个简短的 bash 脚本,它定期使用命令 $(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\
下一步是为通用监视器插件编写一个脚本,这里是:
#!/bin/bash
echo $IPPUBLIQUE
ip=$IPPUBLIQUE
echo $ip
ip="IP:$ip"
echo $ip
checkvpn=$(nmcli con |grep tun0)
if [ -n "$checkvpn" ]
then
echo "<img>/home/richard/Scripts/vpn.png</img>"
echo "<txt>$ip; "$(ps ax | grep $(pidof openvpn) | perl -n -e '/\/(\w+) \.nordvpn\.com/ && print $1')"</txt>"
echo "<click>/home/richard/bin/./killvpngenmon.sh</click>"
echo "<tool>Connected to VPN</tool>"
echo "<img>/home/richard/Scripts/novpn.png</img>"
else
echo "<img>/home/richard/Scripts/novpn.png</img>"
echo "<txt>$ip</txt>"
echo "<click>gksudo /home/richard/bin/autovpn</click>"
echo "<tool>Not connected to VPN</tool>"
echo "<img>/home/richard/Scripts/vpn.png</img>"
fi
当我在控制台中测试脚本时,每个变量的值都是正确的,并使用 echo 命令打印出来。它们将包含正确的 IP 地址。 但是,监视器仅将 $ip 显示为“IP:”。无论我做什么,它都拒绝显示我的 IP 地址,但如果我手动设置变量(例如 ip=192.168.0.1 而不是 ip=$IPPUBLIQUE),它就会起作用。
谁能帮助弄清楚发生了什么以及我该如何纠正它?
非常感谢
【问题讨论】:
-
是的,除非您为其设置了一个值,否则它将不起作用,将值设置为
IPPUBLIQUE到#!/bin/bash之后的IP 或将其作为命令行参数之一传递 -
什么意思?你介意给我举个例子吗?
-
您拥有的脚本没有将值设置为变量,您希望它如何包含 IP
-
实际上 IPPUBLIQUE 是在另一个脚本中设置的,当我在控制台中运行时,我得到以下输出:77.136.204.197 77.136.204.197 IP:77.136.204.197
/home/richard/Scripts/novpn .png
IP: 77.136.204.197 gksudo /home/richard/bin/autovpn 未连接到VPN /home /richard/Scripts/vpn.png 所以变量似乎设置了,但之后没有显示