У меня проблема с плагином xfce4-genmon. Я использую его для мониторинга моего VPN-соединения. Всякий раз, когда я подключаюсь к своей VPN (NordVPN с использованием openpyn), он отображает символ и сервер, к которому я подключен, с помощью этой команды: $(ps ax | grep $(pidof openvpn) | perl -n -e '// (\w+) .nordvpn.com/ && напечатать $1')
Недавно я решил, что хочу, чтобы он также отображал мой текущий IP-адрес (WAN).
Я написал короткий bash-скрипт, который регулярно проверяет IP-адрес с помощью команды $(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\‹ -f 1) Это хранится в переменной среды с именем IPPUBLIQUE и работает нормально.
Следующим шагом было написать скрипт для универсального плагина монитора, который находится здесь:
#!/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
Когда я тестирую сценарий в консоли, значения каждой переменной верны и распечатываются с помощью эхо-команд. Они будут содержать правильные IP-адреса. Однако монитор отображает только $ip как «IP:». Что бы я ни делал, он отказывается отображать мой IP-адрес, но если я задаю переменную вручную (например, ip=192.168.0.1 вместо ip=$IPPUBLIQUE), то все работает.
Может ли кто-нибудь помочь понять, что происходит и как я могу это исправить?
Большое спасибо
IPPUBLIQUE
для IP-адреса после#!/bin/bash
или передайте его как один из аргументов из командной строки. - person Inian   schedule 30.05.2018