linux命令总结:echo

说明:

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
[[email protected] ssh]#echo -e "123\b"
123
[[email protected] ssh]#echo -e "123\b456"
12456
[[email protected] ssh]#echo -e "123\b\b456"
1456
[[email protected] ssh]#echo -e "123\b\b\b456"
456

2.\c不换行输出,如果\c后面不跟字符则跟echo -n一样,如存在字符则不输出后面大字符

1
2
3
4
[[email protected] ssh]# echo -e "123\c"
123[[email protected] ssh]# echo -n "123"
123[[email protected] ssh]# echo -e "123\cabc"
123[[email protected] ssh]#

3.\n表示换行,被输出的字符在\n后则另起一行输出

1
2
3
[[email protected] ssh]# echo -e "123\nabc"
123
abc

4.\f换行,但换行后的新行位置连接上一行的行尾

1
2
3
4
5
6
7
[[email protected] ssh]# echo -e "123\fabc"
123
   abc
[[email protected] ssh]# echo -e "123\fabc\f456"
123
   abc
      456

4.\r表示\r后面的字符覆盖同等长度的\r前面的字符

1
2
3
4
5
6
7
8
[[email protected] ssh]# echo -e "123\rabc"
abc
[[email protected] ssh]# echo -e "123456\rabc"
abc456
[[email protected] ssh]# echo -e "123\rabcdef"
abcdef
[[email protected] ssh]# echo -e "123\r"
123

5.\\经过转义后表示\

1
2
[[email protected] ssh]# echo -e "123\\456"
123\456

6.使用echo的-e功能实现倒计时

1
2
for 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"

linux命令总结:echo

其它代码:

0m 关闭所有属性,此处的m可以省略

1m    设置高亮

4m    下划线

5m    闪烁

7m    反显

8m    消隐,字符颜色与背景相同

30m-37m 设置字体颜色

40m-47m 设置背景颜色

k    清除从光标到行尾的内容


[[email protected] ssh]# echo -e "\033[37m 黑字白底 \033[0m"

 黑字白底 

[[email protected] ssh]# echo -e "\033[1;37m 黑字白底 \033[0m"

 黑字白底 

[[email protected] ssh]# echo -e "\033[4;37m 黑字白底 \033[0m"

 黑字白底 

[[email protected] ssh]# echo -e "\033[5;37m 黑字白底 \033[0m"

 黑字白底 

[[email protected] ssh]# echo -e "\033[7;37m 黑字白底 \033[0m"

 黑字白底 

[[email protected] ssh]# echo -e "\033[8;37m 黑字白底 \033[0m"

不可见

linux命令总结:echo









               本文转自 80后小菜鸟 51CTO博客,原文链接:http://blog.51cto.com/zhangxinqi/1921324