说明:
echo - display a line of text
echo 显示一行文字
用法:
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
echo 短选项\长选项 字符串
选项:
-n 不输出行尾的换行符
-e 启用转义字符功能
-E 禁用反斜杠大解释转义(默认)
--help 显示帮助并退出
--version 显示版本系统并退出
-e 激活转义字符:注意echo输出内容必须要用""引用
\\ \输出反斜杠本身
\a 发出告警声
\b 删除前一个字符,但前提是\b后面存在字符
\c 不换行输出,在\c后面不存在字符的情况下,和echo -n一样,如存在字符则不输出
\f 换行但换行后的新行开头位置连接上一行的行尾
\n 换行且光标移至行首
\r 光标移至行首,但不换行,会将\r后面的内容覆盖前面的内容
\t 插入tab,制表符
\v 与\f相同
\nnn 插入nnn(八进制)所代表的ASCII字符
示例:
1.使用\b转义字符,后面需要跟字符否则不处理,一个\b表示删除一个字符
1
2
3
4
5
6
7
8
|
[root@zxq
ssh
]
#echo -e "123\b"
123
[root@zxq
ssh
]
#echo -e "123\b456"
12456
[root@zxq
ssh
]
#echo -e "123\b\b456"
1456
[root@zxq
ssh
]
#echo -e "123\b\b\b456"
456
|
2.\c不换行输出,如果\c后面不跟字符则跟echo -n一样,如存在字符则不输出后面大字符
1
2
3
4
|
[root@zxq
ssh
]
# echo -e "123\c"
123[root@zxq
ssh
]
# echo -n "123"
123[root@zxq
ssh
]
# echo -e "123\cabc"
123[root@zxq
ssh
]
#
|
3.\n表示换行,被输出的字符在\n后则另起一行输出
1
2
3
|
[root@zxq
ssh
]
# echo -e "123\nabc"
123
abc
|
4.\f换行,但换行后的新行位置连接上一行的行尾
1
2
3
4
5
6
7
|
[root@zxq
ssh
]
# echo -e "123\fabc"
123
abc
[root@zxq
ssh
]
# echo -e "123\fabc\f456"
123
abc
456
|
4.\r表示\r后面的字符覆盖同等长度的\r前面的字符
1
2
3
4
5
6
7
8
|
[root@zxq
ssh
]
# echo -e "123\rabc"
abc
[root@zxq
ssh
]
# echo -e "123456\rabc"
abc456
[root@zxq
ssh
]
# echo -e "123\rabcdef"
abcdef
[root@zxq
ssh
]
# echo -e "123\r"
123
|
5.\\经过转义后表示\
1
2
|
[root@zxq
ssh
]
# echo -e "123\\456"
123\456
|
6.使用echo的-e功能实现倒计时
1
2
|
for
i
in
`
seq
-w 10 -1 1`;
do
echo
-
ne
"$i\r"
;
sleep
1;
done
tput sc;
for
((i=10;i>0;i--));
do
tput rc;tput ed;
echo
-n
"$i"
;
sleep
1;
done
|
上面是两种方法,第二种方法值得研究,其中,tput sc 是存储光标位置,tput rc 是恢复光标位置 tput ed 是清除光标位置,到行尾的内容。
7.echo配合管道设置密码
此处注意输出特殊字符密码时需要用单引号引用世特殊字符原样输出,例如这里的“!123”如不使用单引号而使用双引号,则密码是设置成功的,但是密码却是调用事件存储的密码,会发生密码不正确现象,特别注意!
echo '!123'|passwd --stdin zhang
8.使用echo -e改变字符颜色显示
字符颜色代码:
字体 背景 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
echo -e "\033[43;30m 黑字黄底 \033[0m"
echo -e "\033[43;31m 红字黄底 \033[0m"
echo -e "\033[43;32m 绿字黄底 \033[0m"
echo -e "\033[41;33m 黄字红底 \033[0m"
echo -e "\033[45;34m 蓝字紫底 \033[0m"
echo -e "\033[46;35m 紫字青底 \033[0m"
echo -e "\033[44;36m 青字蓝底 \033[0m"
echo -e "\033[46;37m 白字青底 \033[0m"
其它代码:
0m 关闭所有属性,此处的m可以省略
1m 设置高亮
4m 下划线
5m 闪烁
7m 反显
8m 消隐,字符颜色与背景相同
30m-37m 设置字体颜色
40m-47m 设置背景颜色
k 清除从光标到行尾的内容
[root@zxq ssh]# echo -e "\033[37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[1;37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[4;37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[5;37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[7;37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[8;37m 黑字白底 \033[0m"
不可见
本文转自 80后小菜鸟 51CTO博客,原文链接:http://blog.51cto.com/zhangxinqi/1921324