Shell
如何在 zsh 中設置 HOSTNAME?
在為您設置的 Bash 中
$HOSTNAME
,我可以簡單地使用以下方法計算提示行的總長度:PS1_length=$((${#USER}+${#HOSTNAME}+${#PWDNAME}+12+${#PS1_GIT}))
它很有用,例如在創建這樣的填充線時:
但是
zsh
無法$HOSTNAME
正確設置,我想不出一種方法來模擬其中的類似行為——有什麼想法嗎?
你應該設置
HOSTNAME=$(hostname)
在你的
~/.zshrc
或者正如 Caleb 指出的那樣,有一個變數 HOST 集,所以為了保持提示的可移植性,您還可以這樣做:
HOSTNAME=$HOST
zsh
提示擴展使您無需進行任何計算即可執行該提示:PS1='%$COLUMNS>╡>%F{cyan}╔╡%F{red}[%n]%F{cyan}:%F{yellow}[%m]%F{cyan}➾%F{green}[%~]%F{default}$PS1_GIT%F{cyan}${(l:COLUMNS::═:):-}%<< ╚═╡%F{default}'
解釋:
%$COLUMNS>╡>
: 右截斷到$COLUMNS
(zsh
根據終端寬度動態設置的變數)到下一個部分%<<
。%F{color}
: 設置前景色%n
,%m
,%~
: 使用者名,機器名(主機名直到第一個點),帶有~
-named-dirs的目前目錄。${(l:COLUMNS::═:):-}``${:-}
: 將空字元串 ( )左填充到字元$COLUMNS
長度═
。
%m
就像${HOST%%.*}
。如果您想要完整的主機名 ($HOST
),請%M
改用。