时间:2017.12.21
作者:李强
参考:man,info,magedu讲义,万能的internet
实验环境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
echo
echo [OPTION]... [STRING]...
选项:
-n:不换行(与 -e \c 相同效果)
-e:使用转义字符解释,引号里的转义字符,如果不加引号,它不去解释\
e.g.
[lq@centos7 /app/script]$ echo -e 'test\nhaha'
test
haha
[lq@centos7 /app/script]$ echo -e test\nhaha
testnhaha
[lq@centos7 /app/script]$ echo -e "test\nhaha"
test
haha
-E:默认如此:明确禁止转义字符的解释,不允许反斜线去转义任何字符,反斜线后面是单纯的字符而已,不显示反斜线。
e.g.
[lq@centos7 /app/script]$ echo -E test\nhaha
testnhaha
[lq@centos7 /app/script]$ echo -E "test\nhaha"
test\nhaha
[lq@centos7 /app/script]$
Q: 这里的string可以跟多个的含义怎么解释?
个人理解是,echo -e abc\nd,此时后面是abc\n一共是6个string,-e处理就是a,b,c然后看到\执行,没有,然后n,d;如果echo -e "abc\nd",-e处理就是abc\nd,发现\后有n,解释了\n。待验证。
支持的转义字符如下
\a:alber,发出警告声
\b:backspace,删除前一个字符
\c:进一步抑制输出,就是最后不加上不换行,默认echo输出是换行的
\e:escape character,转码符,代表的是\033
\f:换行但是光标依然在停在原来的位置
\n:new line,换行 且光标移到行首
\r:不换行,光标移到行首
\t:插入tab键,可以用来对齐列
\v:vertical tab,垂直制表符
\:插入\字符
\0nnn:插入nnn所代表的的八进制的ASCII字符
\xHH
echo经常用于输出的时候控制文本的格式有:
文字颜色
颜色码:重置=0,黑色=30,红色=31,绿色=32,×××=33,蓝色=34,洋红=35,青色=36,白色=37
背景
颜色码:重置=0,黑色=40,红色=41,绿色=42,×××=43,蓝色=44,洋红=45,青色=46,白色=47
字体显示方式
颜色码: 终端默认设置=0 高亮显示=1 带下划线=4 字体闪烁=5 反白显示=7 隐藏=8
\033[x;y;zm \033[0m
x表示显示方式
y表示字体颜色
z表示字体背景色
不同终端类型的x,y,z值是不同的,不写就是默认值,然后最后一个跟上m
所以通常最后都会加\033[0m恢复系统终端默认值。
字体颜色的定义:
man console_codes
rpm -ql man-pages