Echo的颜色输出与光标定位
使用-e
选项:开启对反斜线\
的转义。
echo -e "<转义符号>[内容]"
因为脚本中的echo语句会影响到命令行的输出格式,所以一般在输出完毕后都会追加\033[0m
清除格式。
echo -e "<转义符号>[内容]\033[0m"
注意:转义符号并不是echo
独有的,而是在所有支持转义的平台上都可以使用的,比如java。
常用的转义符号如下:
转义符号 | 转义说明 |
---|---|
\033[0m | 关闭所有属性 |
\033[1m | 设置高亮度 |
\033[4m | 下划线 |
\033[5m | 闪烁 |
\033[7m | 反显 |
\033[30m — \033[37m | 设置前景色 |
\033[40m — \033[47m | 设置背景色 |
\033[nA | 光标上移n行 |
\033[nB | 光标下移n行 |
\033[nC | 光标右移n列 |
\033[nD | 光标左移n列 |
\033[y;xH | 设置光标位置;是相对于当前显示的屏幕来定位的 |
\033[2J | 清屏 |
\033[K | 清除从光标到行尾的内容 |
\033[s | 保存光标位置 |
\033[u | 恢复光标位置 |
\033[?25l | 隐藏光标(小写的L) |
\033[?25h | 显示光标 |
\033表示启动一个转义序列,[表示定义开始。
时钟小例子:
#!/bin/bash
n=$1
while [[ $n > 0 ]]
do
date=`date +'%Y-%m-%d %H:%M:%S'`
# first implemention
echo -e -n "\033[?25l\033[31m${date}\033[0m\r"
# second implemention
#echo -e "\033[31m${date}\033[0m"
#echo -e "\033[2A\033[?25l"
sleep 1
((n--))
done
echo -e "\033[?25h"