Действительно ли возможно изменить подсказку согласно существованию соединения VPN?

Когда далеко от дома, мне нравится соединяться с Интернетом через VPN. Было бы замечательно видеть, идет ли соединение в моей подсказке, например:

frank@mycomputer ~    # without vpn active
frank@mycomputerVPN ~ # when vpn is active

Как может я мой .bashrc так, чтобы существование соединения было оценено каждый раз, когда подсказка появляется? Установка PS1 со сценарием запуска vpnc не является решением, потому что это когда-то умирает. Таким образом, я проверяю ли

ps ax -o comm| grep [v]pnc

отдает некоторый результат.

Какое-либо возможное решение?

2
задан 14 June 2017 в 12:50

2 ответа

Добавьте результат теста к Вашей подсказке

, Если команда ps ax -o comm| grep [v]pnc не дает вывода вообще, когда нет никакого активного соединения VPN, но это делает , когда существует, Вы могли отредактировать Ваш .bashrc файл:

  1. добавление следующего маленького раздела к нему:

    if [ -z "$(ps ax -o comm| grep [v]pnc)" ]; then
        test="no vpn active"
    else
        test="vpn active"
    fi
    
  2. Тогда находят строки, начиная с:

    PS1='${debian_chroot....
    
  3. Добавляют ($test) в передней стороне ${debian_chroot:

    PS1='($test) ${debian_chroot...
    

Тогда результат:

enter image description here

, когда существует активное соединение, и:

enter image description here

, когда нет.

Примечание

Всегда первое резервное копирование Ваш ~/.bashrc перед редактированием.

2
ответ дан 2 December 2019 в 02:23

Решение:

я создал сценарий оболочки, названный "/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 \$ "

, Таким образом, это работает, как предназначено. Кроме того, можно подчеркнуть подсказку с цветами. Возможно, это может помочь кому-то еще.

2
ответ дан 2 December 2019 в 02:23

Другие вопросы по тегам:

Похожие вопросы: