Zsh: プロンプトで条件付き if/then

Zsh: プロンプトで条件付き if/then

文書:http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html

このユースケースではうまくいかないようです。

ユースケース:localhostホスト名が含まれている場合はプロンプトからホスト名を削除し、含まれていない場合はホスト名を削除します。例:

(check %m contains 'localhost' then result empty, if not the use %m in prompt)

答え1

%m$HOST値に展開されます(起動時にホスト名で初期化されます)。

したがって、次のものを使用できます。

set -o promptsubst
PS1='${HOST##*localhost*}'

または$HOST、通常は変更されず(ホスト名が変更されても変更されません)、%文字が含まれていないとします。

PS1="${HOST##*localhost*}"

(で展開してください~/.zshrc)。

関連情報