bash提示只能在状态码非0的情况下才响铃吗?
Can the bash prompt ring a bell only when the status code is non 0?
我只是想知道如果退出状态码不为0,bash是否可以在显示提示时按铃
基本上,如果我输入的任何命令没有正确完成,我想听到铃声。
试试这个:
# suggested by chepner for maximum portability
PS1='$( [ $? -eq 0 ] || printf "[=10=]7" )$ '
或者这个,MacOS:
PS1='$( [ $? -eq 0 ] || echo ^G )$ '
您需要输入 Ctrl-V Ctrl-G
才能正确输入 ^G
(同样,MacOS 终端 - YMMV)。
bash
有一个特殊的转义,用于在提示中添加铃铛:\a
。
如果您使用 PROMPT_COMMAND
动态构建提示,这将非常有用。例如:
prompt () {
last_es=$?
PS1='\u@\h'
if [ "$last_es" -ne 0 ]; then
PS1+='\a'
fi
PS1+='\w $'
}
PROMPT_COMMAND=prompt
不要太在意在提示中添加铃铛的地方,因为它不会影响提示的外观,而且您可能不会准确注意提示中每个字符出现时铃声响起的时间:)
我只是想知道如果退出状态码不为0,bash是否可以在显示提示时按铃
基本上,如果我输入的任何命令没有正确完成,我想听到铃声。
试试这个:
# suggested by chepner for maximum portability
PS1='$( [ $? -eq 0 ] || printf "[=10=]7" )$ '
或者这个,MacOS:
PS1='$( [ $? -eq 0 ] || echo ^G )$ '
您需要输入 Ctrl-V Ctrl-G
才能正确输入 ^G
(同样,MacOS 终端 - YMMV)。
bash
有一个特殊的转义,用于在提示中添加铃铛:\a
。
如果您使用 PROMPT_COMMAND
动态构建提示,这将非常有用。例如:
prompt () {
last_es=$?
PS1='\u@\h'
if [ "$last_es" -ne 0 ]; then
PS1+='\a'
fi
PS1+='\w $'
}
PROMPT_COMMAND=prompt
不要太在意在提示中添加铃铛的地方,因为它不会影响提示的外观,而且您可能不会准确注意提示中每个字符出现时铃声响起的时间:)