echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:
\b
转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符; "\b"表示删除前一个字符, "\bb"表示删除前两个字符。
[root@localhost ~]# echo -e "12345\b67" 123467 [root@localhost ~]# echo -e "12345\b\b67" 12367
\c
不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时, "\c"后面的字符将不会被输出。
[root@localhost ~]# echo -e "12345\c67" 12345
\n
换行,被输出的字符从"\n"处开始另起一行。
[root@localhost ~]# echo -e "12345\n67" 12345 67
\f
换行,但是换行后的新行的开头位置连接着上一行的行尾;
[root@localhost ~]# echo -e "12345\f67" 12345 67
\v
与\f相同;
[root@localhost ~]# echo -e "12345\v67" 12345 67
\t
转义后表示插入tab,即横向制表符;
[root@localhost ~]# echo -e "12345\t67" 12345 67
\r
光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时, "\r"前面的字符不会被覆盖;
[root@localhost ~]# echo -e "12345\r67" 67345
\\
表示插入"\"本身
[root@localhost ~]# echo -e "12345\\67" 12345\67
[root@localhost ~]# i=`echo "11,22,33,44"`
[root@localhost ~]# echo ${i%,*} 11,22,33
//从最后倒数到最短的匹配部分(用)后面的逗号的地方被删除
[root@localhost ~]# echo ${i%%,*} 11
//从最后倒数到最长的匹配部分(用号)后面的逗号的地方都被删除
[root@localhost ~]# echo ${i#*,} 22,33,44
//从开头到最短的匹配部分(用#)后面的逗号的地方被删除
[root@localhost ~]# echo ${i##*,} 44
//从开头到最长的匹配部分(用#)后面的逗号的地方被删除