Можно ли изменить приглашение в зависимости от наличия VPN-подключения?
Вдали от дома я люблю подключаться к интернету через VPN. Было бы замечательно видеть, включено ли соединение в моем приглашении, например:
frank@mycomputer ~ # without vpn active
frank@mycomputerVPN ~ # when vpn is active
Как я могу мой .bashrc
чтобы существование соединения оценивалось каждый раз, когда появляется подсказка? Установка PS1 с помощью сценария запуска vpnc не является решением, потому что он иногда умирает. Поэтому я проверяю,
ps ax -o comm| grep [v]pnc
возвращает некоторый результат.
Любое решение возможно?
2 ответа
Добавьте результат теста в вашу подсказку
Если команда ps ax -o comm| grep [v]pnc
не дает никакого вывода вообще, когда нет активного соединения VPN, но это делает, когда есть, вы можете редактировать .bashrc
подать по:
добавив в него следующий небольшой раздел:
if [ -z "$(ps ax -o comm| grep [v]pnc)" ]; then test="no vpn active" else test="vpn active" fi
Затем найдите строки, начинающиеся с:
PS1='${debian_chroot....
добавлять
($test)
в результате${debian_chroot
:PS1='($test) ${debian_chroot...
Тогда результат:
когда есть активное соединение, и:
когда нет
Заметка
Всегда сначала делайте резервную копию вашего ~/.bashrc
перед редактированием.
Решение:
Я создал сценарий оболочки с именем "/usr/local/bin/isvpn" со следующим содержимым:
#! /bin/bash
if [ -z "$(ifconfig | grep tun)" ]; then
test="no VPN"
else
test="VPN"
fi
echo -n "$test"
В.bashrc теперь у меня есть строка
PS1="\u@\h [\$(isvpn)]\w \$ "
Так что работает как задумано. Кроме того, вы можете подчеркнуть подсказку с помощью цветов. Может быть, это может помочь кому-то еще.