[英]Only list host in the bash prompt if running remotely?
我正試圖按照我的意願修改我的Bash提示; 這就是$PS1
看的樣子(為了清晰起見,為了清晰起見了顏色):
PS1='\u@\h:\w\$ '
結果如下:
andreas@tablet-2710p-ubuntu:~$
如果我在本地運行當前的Bash會話而不是訪問遠程服務器,我是否可以調整提示,以便隱藏@tablet-2710p-ubuntu
位(由@\\h
表示)?
我還寧願不對其進行硬編碼(例如,只是替換任何出現的tablet-2710p-ubuntu
)以便於移植,以及以后更改主機名。
如我所知 , 如何檢測shell是否受SSH控制? ,如果設置了任何變量$SSH_CLIENT
或$SSH_TTY
,則表示您通過SSH連接。
如果您使用的是基於Debian的系統(例如Ubuntu),您可以將.bashrc
編輯為類似的東西,以達到預期的效果(請注意, PS1
設置的字符串必須用雙引號定義 ,而不是單引號,默認情況下):
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
if [ "$color_prompt" = yes ]; then
host="@\[\033[1;34m\]\h\[\033[00m\]"
else
host="@\h"
fi
fi
if [ "$color_prompt" = yes ]; then
PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]${host}:\[\033[01;34m\]\w\[\033[00m\]\$ "
else
PS1="${debian_chroot:+($debian_chroot)}\u${host}:\w\$ "
fi
unset host
unset color_prompt force_color_prompt
其結果如下:
附注:這些更改應在您通過SSH連接的服務器上的.bashrc
(或.profile
,具體取決於分發)上進行 。 在您自己的本地Bash配置文件中設置它們對連接到其他遠程服務器時顯示的內容沒有影響。
你想要下面的東西嗎? :
if [ "$SSH_CONNECTION" ]; then
PS1='\u@\h:\w\$ '
else
PS1='\u:\w\$ '
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.