echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。此外,也可以直接在文件中写入要写的内容。
该命令格式如下: [root@localhost ~]# echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换(具体参见表 1) -n:取消输出后行末的换行符号(内容输出后不换行)
其实 echo 命令非常简单,命令的输出内容如果没有特殊含义,则原内容输出到屏幕;如果输出内容有特殊含义,则输出打印其含义。
【例 1】 [root@localhost ~]# echo "c.biancheng.net" #echo的内容就会打印到屏幕上 c.biancheng.net [root@localhost ~]#
echo命令就是这么简单,输出什么内容,这个内容就会打印到屏幕上。 注意:有无双引号都可以,效果一样
【例 2】 [root@localhost ~]# echo -n "c.biancheng.net" c.biancheng.net[root@localhost ~]# #如果加入了 "-n"选项,则在输出内容结束后,不会换行,直接显示新行的提示符
在 echo 命令中如果使用了"-e"选项,则可以支持控制字符,如表 1 所示。
表 1 控制字符 控制字符 作 用 \ 输出\本身 \a 输出警告音 \b 退格键,也就是向左删除键 \c 取消输出行末的换行符。和“-n”选项一致 \e Esc键 \f 换页符 \n 换行符 \r 回车键 \t 制表符,也就是Tab键 \v 垂直制表符 \Onnn 按照八进制 ASCII 码表输出字符。其中 0 为数字 0,nnn 是三位八进制数 \xhh 按照十六进制 ASCH 码表输出字符。其中 hh 是两位十六进制数
【例 3】
[root@localhost ~]# echo -e "\ \a"
#输出 \,同时会在系统音响中输出一声警告音
在这个例子中,echo 命令会输 \。如果不像"\"这样写,那么因为 \ 有特殊含义,所以不会输出。
【例 4】 [root@localhost ~]# echo -e "ab\bc" ac #在这个输出中,在 b 的左侧有"\b",所以输出时只有 ac
【例 5】 [root@localhost ~]# echo -e "a\tb\tc\nd\te\tf" a b c d e f #因为加入了制表符"\t"和换行符"\n",所以会按照格式输出
【例 6】 [root@localhost ~]# echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146" a b c d e f #还是会输出上面的内容,不过是按照制ASCII码输出的
也就是说,141 这个八制数在 ASCII 码中代表小写的"a",其他的以此类推。
【例 7】 [root@localhost ~]# echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66" a b c d e f #如果按照十六进制ASCII码同样可以输出
echo命令还可以输出一些比较有意思的内容。
【例 8】 [root@localhost ~]# echo -e "e[1;31m abed \e[0m"
这条命令会把 abcd 按照红色输出。解释一下这个命令:\e[1 是标准格式,代表颜色输出开始,\e[0m 代表颜色输出结束,31m 定义字体颜色是红色。
echo 命令能够识别的颜色如下:30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色。
【例 9】 [root@localhost ~]# echo -e "e[1;42m abed \e[0m"
这条命令会给 abcd 加入一个绿色的背景。echo 命令可以使用的背景颜色如下:40m=黑色,41m=红色,42m=绿色,43m=黄色,44m=蓝色,45m=洋红,46m=青色,47m=白色。
1.显示普通字符串: echo "It is a test" 这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo It is a test 2.显示转义字符 echo ""It is a test"" 结果将是:
"It is a test" 同样,双引号也可以省略
3.显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/sh read name echo "$name It is a test" 以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:
[root@www ~]# sh test.sh OK #标准输入 OK It is a test #输出
4.显示换行 echo -e "OK! \n" # -e 开启转义 echo "It is a test" 输出结果:
OK!
It is a test
5.显示不换行 #!/bin/sh echo -e "OK! \c" # -e 开启转义 \c 不换行 echo "It is a test" 输出结果:
OK! It is a test
6.显示结果定向至文件 echo "It is a test" > myfile
7.原样输出字符串,不进行转义或取变量(用单引号) echo '$name"' 输出结果:
$name"
8.显示命令执行结果
echo date
注意: 这里使用的是反引号 `, 而不是单引号 '。
结果将显示当前日期
Thu Jul 24 10:08:46 CST 2014
echo的重定向 命令:1.echo “想要的内容”> 文件名
将想要的内容覆盖到对应的文件当中去,文件当中之前的内容不复存在了,实际上是修改了原文件的内容。
2.echo “想要的内容”>> 文件名
将想要的内容追加到文件后,对文件之前的内容不修改,只进行增添,也叫追加重定向。