文書: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
)。