是否可以根据VPN连接的存在来修改提示?

是否可以根据VPN连接的存在来修改提示?

出门在外时,我喜欢通过 VPN 连接到互联网。如果能在提示中看到连接是否开启,那就太好了,例如:

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

我如何才能.bashrc让每次出现提示时都评估连接的存在?使用 vpnc 启动脚本设置 PS1 不是解决方案,因为它有时会死机。所以我检查

ps ax -o comm| grep [v]pnc

返回一些结果。

有什么解决办法吗?

答案1

将测试结果添加到提示中

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...
    

那么结果是:

在此处输入图片描述

当存在活动连接时,并且:

在此处输入图片描述

当没有的时候。

笔记

~/.bashrc编辑之前务必先备份。

答案2

解决方案:

我创建了一个名为“/usr/local/bin/isvpn”的 shell 脚本,内容如下:

#! /bin/bash
if [ -z "$(ifconfig | grep tun)" ]; then
    test="no VPN"
else
    test="VPN"
fi
echo -n "$test"

在 .bashrc 中现在我有一行

PS1="\u@\h [\$(isvpn)]\w \$ "

所以它按预期工作。此外,您还可以用颜色强调提示。也许这可以帮助别人。

相关内容