我在用着https://github.com/magicmonty/bash-git-prompt自定义我的 bash 提示符。所以,我的提示通常看起来像这样
✔ ~/dotfiles [master|⚑ 1] 15:00 $
有什么命令可以捕获该提示文本吗?我想要[master|⚑ 1]
文本而无需将 bash-git-prompt 代码复制到新的 shell 脚本中。
答案1
如果您使用bash
4.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'"'