小编use*_*535的帖子

如何在 bash 中添加从左手 PS1 文本末尾到右手边的不间断行

我很难集中注意力解决这个小问题

\n

基本上我使用这个 bash PS1 脚本,因为它有点酷:

\n
PS1="\\n \\[\\033[0;34m\\]\xe2\x95\xad\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\\[\\033[0;31m\\]\xee\x82\xb2\\[\\033[0;37m\\]\\[\\033[41m\\] \\u \\[\\033[0m\\]\\[\\033[0;31m\\]\xee\x82\xb0\\[\\033[0;34m\\]\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\\[\\033[0;32m\\]\xee\x82\xb2\\[\\033[0;30m\\]\\[\\033[42m\\] \\w \\[\\033[0m\\]\\[\\033[0;32m\\]\xee\x82\xb0 \\n \\[\\033[0;34m\\]\xe2\x95\xb0\xef\x91\xa0 \\[\\033[1;36m\\]\\$ \\[\\033[0m\\]"\n
Run Code Online (Sandbox Code Playgroud)\n

看起来像这样:

\n

像电力线一样的 bash

\n

我想要做的是在右侧打印时间戳,并用实线连接文本左侧的末尾和右侧的开头,例如:

\n
PS1="\\n \\[\\033[0;34m\\]\xe2\x95\xad\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\\[\\033[0;31m\\]\xee\x82\xb2\\[\\033[0;37m\\]\\[\\033[41m\\] \\u \\[\\033[0m\\]\\[\\033[0;31m\\]\xee\x82\xb0\\[\\033[0;34m\\]\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\\[\\033[0;32m\\]\xee\x82\xb2\\[\\033[0;30m\\]\\[\\033[42m\\] \\w \\[\\033[0m\\]\\[\\033[0;32m\\]\xee\x82\xb0 \\n \\[\\033[0;34m\\]\xe2\x95\xb0\xef\x91\xa0 \\[\\033[1;36m\\]\\$ \\[\\033[0m\\]"\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试这样做:

\n
$(printf \'%*s\' $COLUMNS  \'-\')\n
Run Code Online (Sandbox Code Playgroud)\n

但这显然只是创建了一条充满破折号的全新行。

\n

我知道如何获取光标停止处的值,tput sc但我不明白如何在变量中使用它?然后打印这些行,在右侧留下大约 5 个字符作为时间。

\n

这是我第一次尝试 bash 脚本,所以请原谅我的无知。

\n

任何帮助表示赞赏

\n

command-line bash scripts

5
推荐指数
1
解决办法
222
查看次数

标签 统计

bash ×1

command-line ×1

scripts ×1