将评估的提示占位符打印到屏幕上

将评估的提示占位符打印到屏幕上

有没有办法将解释的 PS1 变量占位符打印到控制台?就像是

$ echo `%u`

用于打印用户名或

$ echo `%h`

用于打印主机。我确实了解环境变量,我只是想知道是否有办法通过PS1变量获取相同的信息。

答案1

在 zsh 中,使用% 参数扩展标志

tmp='%n@%m'; echo ${(%)tmp}

在bash中,似乎没有一个简单的方法,但是有一个偷偷摸摸的方法:

tmp=$(set +x; (PS4='+.\u@\h'; set -x; :) 2>&1); tmp=${tmp#*.}; echo ${tmp%:}

在 tcsh 中,我认为没有办法。 (但是现在谁使用 (t)csh 呢?)

相关内容