我已经搜索了一段时间,但找不到有关在 PS1 中添加变量的帖子或任何信息,该变量在 bash 中是变量(即更改),每次出现新提示时都会更新。具体来说,我希望提示的宽度跨越整个终端窗口,例如:
7zS2::awesome| --------------------------------------------------------- ~/.config/awesome
这是我到目前为止所拥有的,省略了颜色代码以提高易读性:
mytest=$PWD
mynext="$(basename $PWD)"
mylength=$((${#mytest}+${#mynext}))
length=$(($mylength+6))
PS1='7zS2::W| $(printf "\u2500%.0s" $(seq $length $(tput cols))) wn$'
每当我
exec bash
以重置提示。
但是,我希望它无需重新加载 bash 即可工作。当然,必须有一种方法可以做到这一点,因为\w,\W等都是唯一的,并且每个提示都会更新。有什么方法可以轻松做到这一点吗?谢谢!
7zS2
试试这个。 将您的代码放入一个文件中,我在我的主目录中gash.sh
调用它,稍作修改:将 PS1 分配替换为 echo
,并将单引号替换为双引号。
mytest=$PWD
mynext="$(basename $PWD)"
mylength=$((${#mytest}+${#mynext}))
length=$(($mylength+6))
echo "7zS2::W| $(printf \u2500%.0s $(seq $length $(tput cols))) wn$"
然后在启动文件集 PS1 中:
PS1='$(~/gash.sh)'