于上两个echo命令中,你会发现argument的部份显示在你的荧幕,而换行符号则视-n option的有无而别。
很明显的,第二个echo由于换行符号被取消了,接下来的shell prompt就接在输出结果同一行了…^_^
事实上,echo除了-n options之外,常用选项还有:
-e:启用反斜线控制字符的转换(参考下表) -E:关闭反斜线控制字符的转换(预设如此) -n:取消行末之换行符号(与-e选项下的c字符同意)关于echo命令所支持的反斜线控制字符如下表:
a:ALERT / BELL(从系统喇叭送出铃声) b:BACKSPACE,也就是向左退格键 c:取消行末之换行符号 E:ESCAPE,跳脱键 f:FORMFEED,分页字符 n:NEWLINE,换行字符 r:RETURN,回车键 t:TAB,表格跳位键 v:VERTICAL TAB,垂直表格跳位键 n:ASCII八进位编码(以x开首为十六进位) :反斜线本身(表格数据来自O'Reilly出版社之Learning the Bash Shell,2nd Ed.)
或许,我们可以透过实例来了解echo的选项及控制字符:
例一:
$ echo -e "atbtcndtetf" a b c d e f
上例运用t来区隔abc还有def,及用n将def换至下一行。
例二:
$ echo -e "141 11142 11143 12144 11145 11146" a b c d e f
与例一的结果一样,只是使用ASCII八进位编码。
例三:
$ echo -e "x61x09x62x09x63x0ax64x09x65x09x66" a b c d e f
与例二差不多,只是这次换用ASCII十六进位编码。
例四:
$ echo -ne "atbtcndtebfa" a b c d f $
因为e字母后面是退格键(b),因此输出结果就没有e了。在结束时听到一声铃向,那是a的杰作﹗
由于同时使用了-n选项,因此shell prompt紧接在第二行之后。若你不用-n的话,那你在a后再加个c,也是同样的效果。
事实上,在日后的shell操作及shell script设计上,echo命令是最常被使用的命令之一。
比方说,用echo来检查变量值:
$ A=B $ echo $A B $ echo $? 0
(注:关于变量概念,我们留到下两章才跟大家说明。)
好了,更多的关于command line的格式,以及echo命令的选项,就请您自行多加练习、运用了…
第4问:“”(双引号)与''(单引号)差在哪?
还是回到我们的command line来吧…
经过前面两章的学习,应该很清楚当你在shell prompt后面敲打键盘、直到按下Enter的时候,
你输入的文字就是command line了,然后shell才会以行程的方式执行你所交给它的命令。但是,你又可知道:你在command line输入的每一个文字,对shell来说,是有类别之分的呢?
简单而言(我不敢说这是精确的定议,注一),command line的每一个charactor,分为如下两种:










