echo命令

echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。

  linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

语法


echo(选项)(参数)



选项



-n 打印信息之后不换行。

-e 对字符串转义。



参数




使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:  



    \a 发出警告声;



    \b 删除前一个字符; 



    \c 最后不加上换行符号;



    \f 换行但光标仍旧停留在原来的位置; 



   \n 换行且光标移至行首; 



   \r 光标移至行首,但不换行;



   \t 插入tab; 



   \v 与\f相同;



   \\ 插入\字符; 



   \nnn 插入nnn(八进制)所代表的ASCII字符;





变量:指定要打印的变量。







常用范例





示例一 打印当前的PATH设置

echo $PATH 
 /usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
 [root@jfht ~]#

 

示例二 打印当前的LANG设置

echo $LANG 
 zh_CN.GB18030
 [root@jfht ~]#

 

网上经常有人问在Linux下将默认语言更改为中文,我一般的做法是

在/etc/profile的末尾加上

export LANG=zh_CN.GB18030

然后重新登录即可。但是较低版本的Linux通常在某些命令的输出中出现乱码,比如常用的service命令。

 

示例三 打印之后不换行

echo -n "Please input your name: "; read name; echo "Your name is $name" 
 Please input your name: coding
 Your name is coding
 [root@jfht ~]#

 

此处使用了-n参数,避免在输出信息之后自动换行。

 

示例四 对输出信息进行转义,比如输出换行

echo "hello\nworld" 
 hello\nworld
 [root@jfht ~]# echo -e "hello\nworld" 
 hello
 world
 [root@jfht ~]# echo 'hello\nworld' 
 hello\nworld
 [root@jfht ~]# echo -e 'hello\nworld' 
 hello
 world
 [root@jfht ~]# echo hello; echo world 
 hello
 world
 [root@jfht ~]#


可以使用如下转义字符

\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;

 

echo "hello\fworld" 
 hello\fworld
 [root@jfht ~]# echo -e "hello\fworld" 
 hello
      world
 [root@jfht ~]# echo "hello\vworld" 
 hello\vworld
 [root@jfht ~]# echo -e "hello\vworld" 
 hello
      world
 [root@jfht ~]#

 

示例五 输出到标准错误输出

在编写脚本时,经常会利用管道将前一个命令的输出作为后一个命令的输入,如果要打印调试信息,但不把该信息干扰后面的命令,可以将调试信息输出到标准错误输出,如下所示。

echo hello >&2 
hello
[root@jfht ~]#

 

下面是一个应用此技巧的脚本片段。



echo命令 linux linux中echo命令的用法_apache


1. # usage: proc_cmd  
2. proc_cmd()  
3. {  
4. 1
5.         NUM=$(get_estimate_count $CMD)  
6.         # 只有返回数值的时候才打印信息,否则出错了  
7. "$NUM"
8. "%-48s\t%16s\n"
9.         else  
10. 2
11.                 echo $CMD >>failed.dat  
12.         fi  
13. }


 

示例六 用echo命令打印带有色彩的文字:

文字色

echo -e "\e[1;31mThis is red text\e[0m" 

This is red text
\e[1;31m 将颜色设置为红色

 \e[0m 将颜色重新置回 

颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色

[root@jfht ~]# echo -e "\e[1;42mGreed Background\e[0m"

Greed Background

颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47




文字闪动

[root@jfht ~]# echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"

红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐