gpt4 book ai didi

bash - 给字符串下划线直到行尾

转载 作者:行者123 更新时间:2023-11-29 09:23:45 27 4
gpt4 key购买 nike

我有以下代码,它根据最后一个命令是否成功执行显示一条消息(添加到 PS1 之前):

function previous_command() {
exit_code=$?
if [ $exit_code -eq 0 ]; then
echo -e "\033[1;4;32mCommand successful\033[00m"
else
echo -e "\033[1;4;31mCommand failed with exit code $exit_code\033[00m"
fi
}

我想要做的是让下划线一直延伸到当前终端窗口的边缘,如下所示:

Bash draw underline until the edge of the terminal window

假设退出代码是一个字符长,我可以通过添加空格将其硬编码为 80 个字符,但如果我调整窗口大小或获得 10 或更大的退出代码,这将失败。

我怎样才能让这个函数动态地继续线到终端窗口的边缘?

最佳答案

您可以使用 printf "%-42s" 将带空格的字符串左对齐到 42 个字符。您可以使用 $COLUMNS 获取窗口宽度。将它们放在一起,我们得到:

printf "\033[1;4;31m%-${COLUMNS}s\033[00m" "Command failed with $RANDOM"

无论(这里是随机的)数字有多少位,这条线总是一直延伸到边缘。

关于bash - 给字符串下划线直到行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24392443/

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