命令捕获当前命令提示符文本

命令捕获当前命令提示符文本

我在用着https://github.com/magicmonty/bash-git-prompt自定义我的 bash 提示符。所以,我的提示通常看起来像这样

✔ ~/dotfiles [master|⚑ 1] 15:00 $

有什么命令可以捕获该提示文本吗?我想要[master|⚑ 1]文本而无需将 bash-git-prompt 代码复制到新的 shell 脚本中。

答案1

如果您使用bash4.x,您可以将其捕获到变量中

prompt="${PS1@P}"

或者只是将其输出以捕获到管道中

echo "${PS1@P}"

您还可以使用script捕获终端会话(包括显示的提示)到一个文件,然后您可以修剪该文件并将其用于任何邪恶目的:

$ script foo
user@host:~
$ exit
$ cat foo
Script started on Thu Jul  6 12:59:45 2017
user@host:~
$ exit
exit
Script done on Thu Jul  6 12:59:48 2017

这里没有显示所有使提示更加美观的 ANSI 颜色代码。

答案2

在这里找到了一个很好的解决方案https://stackoverflow.com/a/44090232/55948

eval 'echo -en "'$PS1'"'

相关内容