bash - 如何将脚本输出居中放置在屏幕中间?

标签 bash

这里我有一个二进制时钟,它输出 16 种不同颜色的二进制时钟,我试图让它出现在屏幕中央,但无法做到。如果您对如何操作有任何建议,请告诉我。 谢谢

color=("0;30" "0;31" "0;32" "0;33" "0;34" "0;35" "0;36" "0;37" "1;30" "1;31" "1;32" "1;33" "1;34" "1;35" "1;36" "1;37")
color2=${#color[*]}
while true;
do
clear
echo -ne '\e['${color[$((RANDOM%color2))]}m
hour=$(date +%H)
minute=$(date +%M)
second=$(date +%S)
hour_binary=$(echo "ibase=10;obase=2;$hour" | bc)
minute_binary=$(echo "ibase=10;obase=2;$minute" | bc)
second_binary=$(echo "ibase=10;obase=2;$second" | bc)
printf "%06d\n" "$hour_binary"
printf "%06d\n" "$minute_binary"
printf "%06d" "$second_binary"
sleep 1
done

最佳答案

如果你指的是终端窗口的中心,获取终端窗口的列和行:

COLS=$(tput cols)
ROWS=$(tput lines)
CLOCKWIDTH=8       # Assuming a HH:MM:SS format
CENTERCOL=$((COLS/2))
CENTERCOL=$((CENTERCOL-CLOCKWIDTH))
CENTERROW=$((ROWS/2))

然后使用 tput 命令设置光标位置:

tput cup $CENTERCOL $CENTERROW

参见 http://www.cyberciti.biz/tips/spice-up-your-unix-linux-shell-scripts.html例如使用 tput 和 https://www.gnu.org/software/termutils/manual/termutils-2.0/html_chapter/tput_1.html有关 tput 命令的更多信息。

关于bash - 如何将脚本输出居中放置在屏幕中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239183/

相关文章:

linux - 如何在 shell 脚本中使用 getopt 获取多个参数

bash - 如何简化 YAML CircleCI 配置以获得更好的可读性?

linux - 替换模板文件中的 bash 变量

linux - 无法从 Linux bash 中的文本文件中删除隐藏字符

bash - 出错退出子shell

linux - 在 Bash 中,如何显示脚本输出然后恢复到之前的输出(如 less、top 或 watch)

bash - 读取行并比较字符串

bash - bash 中的复杂键绑定(bind)

git - 我如何知道我安装了哪些版本的 MinGW32 和 MinGW64(通过 Git Bash)?

bash - 'cd ${0%/*}' 在 bash 中是什么意思?