您的位置:首页 > 运维架构 > Linux

一天一条Linux指令-echo

2016-11-03 17:14 288 查看


用途说明

echo命令用来打印信息,是一个最常用的命令。在命令行中常用来打印环境变量的值,已确定当前环境中是否设置了指定的环境变量。在shell脚本中,常用来打印信息和帮助调试程序。

 


常用参数

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

-e 对字符串转义。

 


使用示例


示例一 打印当前的PATH设置

[root@jfht ~]# 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设置

[root@jfht ~]# echo $LANG 

zh_CN.GB18030

[root@jfht ~]#

 

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

在/etc/profile的末尾加上

export LANG=zh_CN.GB18030

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

 


示例三 打印之后不换行

[root@jfht ~]# 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参数,避免在输出信息之后自动换行。

 


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

[root@jfht ~]# 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字符;

 

[root@jfht ~]# 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 ~]#

 


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

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

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

hello

[root@jfht ~]#

 

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

Bash代码  


# usage: proc_cmd  

proc_cmd()  

{  

        CMD=$1  

        NUM=$(get_estimate_count $CMD)  

        # 只有返回数值的时候才打印信息,否则出错了  

        if [ "$NUM" ]; then  

                printf "%-48s\t%16s\n"  $CMD    $NUM  

        else  

                echo $CMD >&2  

                echo $CMD >>failed.dat  

        fi  

}  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: