echo的任务就是产生输出,可用来提示用户,或者用来产生数据供进一步处理。
原始的echo命令只会将参数打印到标准输出,参数之间以一个空格隔开,并以换行符号(newline)结尾。
$echo this is a test
this is a test
不过随着时间的流逝,有各种版本的echo开发出来。BSD版本的echo看到第一个参数为-n时,会省略结尾的换行符号。例如(下划线符号表示终端画面的光标):
$echo -n "Enter your name: " 显示提示
Enter your name:_ 键入数据
system V版本的echo会解释参数里特殊的转义序列,例如\c用来指示echo不要打印最后的换行符号:
$echo -n "Enter your name: \c" 显示提示
Enter your name: _ 键入数据
转义序列可用来表示程序中难以键入或难以看见的字符。echo遇到转义序列时,会打印相应的字符
\a 警示字符,通常是ASCII的BEL字符
\b 退格(Backspace)
\c 输出中忽略最后的换行字符(Newline)。这个参数之后的任何字符,包括接下来的参数,都会被忽略掉(不打印)
\f 清除屏幕(Formfeed)
\n 换行(Newline)
\r 回车(Carriage return)
\t 水平制表符(Horizontal tab)
\v 垂直制表符(Vertical tab)
\\ 反斜杠字符
\0ddd 将字符表示成1到3位的八进制数值
实际编写shell脚本的时候,\a序列通常用来引起用户的注意;\0ddd序列最有用的地方,就是通过送出终端转义序列进行(非常)原始的光标操作,但是不建议这这么做
在树莓派上学习的时候发现转义字符不能用
然后查询了一下 man echo 发现默认反斜杠是不能用的
需要在命令中加入-e启动反斜杠使用
发现还是不能使用,就好奇使用了两个\,即\b
可以了 \b退一格