用途说明
echo命令用来打印信息,是一个最常用的命令。在命令行中常用来打印环境变量的值,已确定当前环境中是否设置了指定的环境变量。在shell脚本中,常用来打印信息和帮助调试程序。
用法:
echo [选项]... [字符串]...
常用参数
-n 打印信息之后不换行。
-e 对字符串转义。
-E 取消反斜杠ESC转义 (默认)
--help 显示帮助
--version 显示版本
使用示例
示例一 打印当前的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
"hellonworld"
hellonworld
[root@jfht ~]# echo -e
"hellonworld"
hello
world
[root@jfht ~]# echo
'hellonworld'
hellonworld
[root@jfht ~]# echo -e
'hellonworld'
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
"hellofworld"
hellofworld
[root@jfht ~]# echo -e
"hellofworld"
hello
world
[root@jfht ~]# echo
"hellovworld"
hellovworld
[root@jfht ~]# echo -e
"hellovworld"
hello
world
[root@jfht ~]#
示例五 输出到标准错误输出
在编写脚本时,经常会利用管道将前一个命令的输出作为后一个命令的输入,如果要打印调试信息,但不把该信息干扰后面的命令,可以将调试信息输出到标准错误输出,如下所示。
[root@jfht ~]# echo hello
>&2
hello
[root@jfht ~]#
颜色输出:
注意要输出颜色必须有 -e 选项。
然后说一下重点:ANSI控制码在输出有颜色文本方面应用。
-e 用来开启echo中的转义
e 或 33 来输出Esc符号
设置颜色的格式: e[背景色;前景色;高亮m
恢复默认为 e[0m
其中背景色可以被以下数字替换
0 透明(使用终端颜色), 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿,
47白(灰)
前景色(也就是文本的颜色)可以被以下数字替换
30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)
高亮是1,不高亮是0
注意m后面紧跟字符串。