【问题标题】:Bash: Reevaluate PS1 without carriage returnBash:在没有回车的情况下重新评估 PS1
【发布时间】:2017-02-22 04:28:45
【问题描述】:

这是我的 PS1:

export PS1='\u@\h:\w\$ '

看起来像这样:

user@ubuntu:~/ $

我已将 Alt+{Left,Right} 箭头绑定到更改当前工作目录的命令:

bind -x '"\e[1;3D":pushd . > /dev/null && cd ..'
bind -x '"\e[1;3C":popd > /dev/null'

这可行,但由于没有输入回车,因此不会评估 PS1 中的当前工作目录。有没有办法强制 bash 重新评估 PS1?

【问题讨论】:

  • 即使您没有执行命令,您希望它重新显示提示?
  • 我已经通过绑定执行了一个命令。
  • 如果在绑定末尾添加& echo -n "" 会怎样?
  • 不,没有帮助。

标签: linux bash prompt


【解决方案1】:

随着in-bash-how-do-i-bind-function-key-to-a-command 的接受答案,看起来删除-x 并在末尾添加\n 应该这样做:

bind '"\e[1;3D":"pushd . >/dev/null && cd .. && echo\n"'
bind '"\e[1;3C":"popd > /dev/null && echo -n\n"'

【讨论】:

  • 它并没有真正做我想要的,因为它显示了命令,然后添加了一个回车符。但我想在不显示命令并添加回车的情况下这样做。出于美学原因,我想内联进行更改。
  • 谢谢,已修复。我找不到任何其他方法来强制 bash 重新发出 $PS1 提示符。
  • 我也不是,这就是我问的原因;)
猜你喜欢
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 2022-06-20
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多