0

我已经搜索了很长一段时间,但一直找不到关于在 bash 中的 PS1 中添加变量(即变量(即更改))的帖子或任何信息,每次出现新提示时都会更新发生。具体来说,我希望提示的宽度跨越整个终端窗口,例如:

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))) \w\n\$'

每当我

exec bash

重置提示。

但是,我希望它能够在我不必重新加载 bash 的情况下工作。当然必须有一种方法可以做到这一点,因为 \w、\W 等是独一无二的,并且每个提示都会更新。有什么方法可以轻松做到这一点?谢谢!

7zS2

4

1 回答 1

0

尝试这个。将您的代码放入一个文件中,我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))) \w\n\$"

然后在您的启动文件集 PS1 中:

PS1='$(~/gash.sh)'
于 2016-02-11T06:56:38.530 回答