[英]BEL in Bash / Zsh PROMPT
我的 .zshrc 中有以下配置:
BEL=$(tput bel)
PROMPT+='%(?::$BEL)'
这在某些环境中有效(在 Windows 上总是 Cygwin),但目前不再有效。
(相同的行为:在 Windows 上的 Ubuntu 上的 Bash 中不起作用。)
怎么了?
在zsh
,与bash
不同,如果设置了PROMPT_SUBST
选项,则嵌入在提示中的参数扩展仅在显示提示时扩展。
%(...)
是特定于zsh
转义序列,而PROMPT
本身是特定于zsh
名称,因此这在bash
不起作用,这将需要类似
PS1+='$(if test $? -ne 0; then tput bel; fi)'
(顺便说一句,假设启用了PROMPT_SUBST
,它也可以在zsh
工作。如果当前外壳实际上是zsh
,则有条件地启用它的命令可能是
if [ -z "$ZSH_VERSION" ]; then
setopt PROMPT_SUBST
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.