我有以下代码,该代码根据上一条命令是否成功执行(显示为)显示一条消息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
}
我要做的是使下划线一直延伸到当前终端窗口的边缘,如下所示:
假设退出代码是一个字符长,我可以通过添加空格将其硬编码为80个字符,但是如果我调整窗口大小或获取退出代码为10或更大,此操作将失败。
如何使此功能动态地将线延续到终端窗口的边缘?
您可以使用左对齐带空格的字符串至42个字符printf "%-42s"
。您可以使用获取窗口宽度$COLUMNS
。将它们放在一起,我们得到:
printf "\033[1;4;31m%-${COLUMNS}s\033[00m" "Command failed with $RANDOM"
无论(这里是随机的)数字有多少个数字,该行始终一直延伸到边缘。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句