如何设置 Bash shell 在输入命令后自动更改行?

如何设置 Bash shell 在输入命令后自动更改行?

我可以在 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"

相关内容