繁体   English   中英

Bash 中的 BEL / Zsh 提示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM