gpt4 book ai didi

bash - 打印到终端末尾

转载 作者:行者123 更新时间:2023-12-02 04:13:44 24 4
gpt4 key购买 nike

像这张apt-get的图片,如何在行尾打印一些东西,就像屏幕上的速度一样。虽然我可以使用像 \e[C 这样的转义来使其向右移动几列并打印,但是速度不同,字符串长度也不同。谁能告诉我该怎么做?我目前正在使用 bash 进行编程。谢谢。 apt-get

最佳答案

通常你会在环境变量 COLUMNS 中找到控制台窗口的宽度。 ,但这并不完全可靠。更可靠的解决方案是使用带有参数 colstput 实用程序(ncurses 的一部分,但可以独立使用):

$ echo $COLUMNS
148
$ tput cols
148

分割文本的一个简单方法是使用 Posix 标准的 printf 实用程序首先打印要在右边距上对齐的文本并填充到列宽,然后输出一个回车符 (\r) 将光标返回到行首,然后打印要在左边距对齐的文本。最后换行符将移动到下一行。或者,在代码中:

# Call it like this:
# print_both_sides "This goes on the left" "and this goes on the right."
print_both_sides() {
printf "\r%*s\r%s\n" $(tput cols) "$2" "$1";
}

printf 格式使用 * 替换字段宽度和精度格式修饰符的标准功能; * 表示应从参数中获取相应的数字。在本例中,我使用 $(tput cols)(即控制台窗口的宽度)作为格式代码 %*s 的第一个参数,该代码具有在宽度恰好等于控制台宽度的字段中右填充下一个字符串参数 ("$2") 的效果。

我在输出的开头添加了一个额外的回车符,以防光标当前不在左边距。

关于bash - 打印到终端末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35052500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com