我可以在 zsh 中使用它来在输入命令后自动更改行,但我不知道如何在 bash 中做到这一点。
build_prompt() {df
enter code hereRETVAL=$?
prompt_status
prompt_virtualenv
prompt_aws
prompt_context
prompt_dir
prompt_git
prompt_bzr
prompt_hg
**prompt_newline** # typed code
prompt_end
}
# typed code
**prompt_newline() {
if [[ -n $CURRENT_BG ]]; then
echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%{%k%F{blue}%}$SEGMENT_SEPARATOR"
else
echo -n "%{%k%}"
fi
echo -n "%{%f%}"
CURRENT_BG=''
}**
答案1
通过设置PROMPT_COMMAND添加到回显换行符的函数中,即可实现所需的效果。
将其放在您的.bashrc或者.bash_配置文件文件以使其在会话之间持久:
add_newline() {
echo -e "\n"
}
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}add_newline"
答案2
如果您想要在每个命令之后打印一个换行符,则只需将该换行符添加到PS1
保存提示符的变量前面:
PS1="\n$PS1"