有没有办法将解释的 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 呢?)