shell命令:echo命令详解功能说明:显⽰⽂字。
语 法:echo [-ne][字符串] / echo [--help][--version]
补充说明:echo会将输⼊的字符串送往标准输出。输出的字符串间以空⽩字符隔开, 并在最后加上换⾏号。
参 数:
-n 不要在最后⾃动换⾏
-e 打开反斜杠ESC转义。
若字符串中出现以下字符,则特别加以处理,⽽不会将它当成⼀般⽂字输出:
\a 发出警告声;
\b 删除前⼀个字符;
\c 最后不加上换⾏符号;
\f 换⾏但光标仍旧停留在原来的位置;
\n 换⾏且光标移⾄⾏⾸;
\r 光标移⾄⾏⾸,但不换⾏;
\t 插⼊tab;
\v 与\f相同;
\\ 插⼊\字符;
\nnn 插⼊nnn(⼋进制)所代表的ASCII字符;
-E 取消反斜杠ESC转义 (默认)
-help 显⽰帮助
-version 显⽰版本信息
>>>>>>>>>>>> #
echo输出颜⾊⽂本 echo命令改变样式,以输出不同颜⾊的⽂本,必须有 -e 选项(开启echo中的转义)。
⽂本终端的显⽰颜⾊可以使⽤“ANSI⾮常规字符序列”来⽣成。
例如:echo -e "\033[44;37;5m ME\033[0m COOL"
解释:"\033[44;37;5m ME "设置背景为蓝⾊,前景为⽩⾊,闪烁光标,输出字符“ME”;
"\033[0m COOL"重新设置屏幕到缺省设置,输出字符 “COOL”。
"e"是命令echo的⼀个可选项,它⽤于激活特殊字符的解析器。
"\033"引导⾮常规字符序列(即"\033["表⽰终端转义字符开始,
"\033"即退出键<ESC>的ASCII码)。
"m"意味着设置属性然后结束⾮常规字符序列,这个例⼦⾥真正有效的字符是"44;37;5"和"0"。
修改"44;37;5"可以⽣成不同颜⾊的组合,数值和编码的前后顺序没有关系。
可以选择的编码如下所⽰(这些颜⾊是ANSI标准颜⾊):编码颜⾊/动作
0       重新设置属性到缺省设置
1      设置粗体
2      设置⼀半亮度(模拟彩⾊显⽰器的颜⾊)
4      设置下划线(模拟彩⾊显⽰器的颜⾊)
5      设置闪烁
7      设置反向图象
22     设置⼀般密度
24     关闭下划线
25      关闭闪烁
27      关闭反向图象
30       设置⿊⾊前景
31    设置红⾊前景
32    设置绿⾊前景
33    设置黄⾊前景
34    设置蓝⾊前景
35     设置紫⾊前景
36      设置青⾊前景
37     设置⽩⾊(灰⾊)前景
38       在缺省的前景颜⾊上设置下划线
39       在缺省的前景颜⾊上关闭下划线
40       设置⿊⾊背景
41       设置红⾊背景
42      设置绿⾊背景
shell代码43      设置黄⾊背景
44      设置蓝⾊背景
45      设置紫⾊背景
46      设置青⾊背景
47       设置⽩⾊(灰⾊)背景
49       设置缺省⿊⾊背景
其他有趣的代码还有:
\033[2J   清除屏幕
\033[0q   关闭所有的键盘指⽰灯
\033[1q  设置"滚动锁定"指⽰灯(Scroll Lock)
\033[2q  设置"数值锁定"指⽰灯(Num Lock)
\033[3q  设置"⼤写锁定"指⽰灯(Caps Lock)
\033[15:40H  把关闭移动到第15⾏,40列
\007    发蜂鸣⽣beep
⼀些说明:前景颜⾊各数字是对应背景颜⾊减去10。结束⾮常规字符序列的"m"要紧跟前⾯的数字,不能有空格。命令也可以写成echo -e "^[[44;37;5m ME \033[0m COOL",其中的"^["是先按Ctrl-V,然后再按<ESC>键产⽣的。
输出带有颜⾊的⽂本,echo命令必须带有选项"-e"。
这种⽅法只能暂时改变echo命令输出的⽂本的样式,logout后就恢复为默认。
#----------------------------------------------------------- #
建议:在shell⽂件的最前⾯,将echo命令的输出样式定义成变量。
# define echo terminal style
# color: 0~6 --> black, red, green, yellow, blue, purple, cyan, grey
export ECHO_STYLE_00="\033[0m"
# default style(black background, white foreground)
export ECHO_STYLE_01="\033[41;33;1m"
# red background, yellow foregound bold
echo -e "${ECHO_STYLE_01}echo command terminal style example${ECHO_STYLE_00}"
>>>>>>>>>>>> #
echo命令的其他⽤法
1).光标跳到第60列,然后显⽰⼀个OK。
格式:echo -en '\033[60G' && echo OK
说明:"\033["是终端转义字符开始,60G是命令。
>>>>>>>>>>>>
然后给⼏个⽐较强⼤的脚本函数 1) cfont #by zuoyang hi.baidu/test/
cfont()
{ while (($#!=0))
do        case $1 in
     -b)                        echo -ne " ";                ;;
     -t)                        echo -ne "\t";                ;;
     -n)    echo -ne "\n";                ;;
-black)                        echo -ne "\033[30m";                ;;
-red)                        echo -ne "\033[31m";                ;;
-green)                        echo -ne "\033[32m";                ;;
-yellow)                        echo -ne "\033[33m";                ;;
-
blue)                        echo -ne "\033[34m";                ;;
-purple)                        echo -ne "\033[35m";                ;;
-cyan)                        echo -ne "\033[36m";                ;;
-white|-gray) echo -ne "\033[37m";                ;;
-reset)                        echo -ne "\033[0m";                ;;
-h|-help|--help)                        echo "Usage: cfont -color1 message1 -color2 message2 ...";
echo "eg:      cfont -red [ -blue message1 message2 -red ]";                ;;
*)                echo -ne "$1"                ;;
esac
shift
done }
使⽤⽅法是 cfont -颜⾊字符串...
如: cfont -cyan abc
注意使⽤时要换⾏需要加⼊ -n 选项。想要恢复默认的要加⼊ -reset选项。
2)颜⾊码表
#!/bin/bash T='gYw'
# The test text
echo
echo "        default 40m    41m    42m    43m    44m    45m    46m 47m"
## FGs 为前景(foreground)⾊, BG 为背景(background)⾊
for FGs in '    m' '  1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m'        do        FG=$(echo $FGs|tr -d ' ')
echo -en " $FGs \033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do                echo -en " \033[$FG\033[$BG $T \033[0m"                    done
echo
done
echo

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论