Linux echo --显示文本,打印信息
2016-04-08 09:48
573 查看
用途说明
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
}
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
}
相关文章推荐
- Linux du --查看文件的磁盘空间占用情况
- Linux dos2unix --将DOS格式文本文件转换成UNIX格式
- 配置Linux内核源码make menuconfig 时unable to find the ncurses libraries 错误
- Linux dmidecode -查看硬件信息
- Linux AIO:一张 DVD 可体验多个 Ubuntu 分支
- Linux dmesg --查看开机信息/打印或控制内核环形缓冲区
- Linux dirname --截取给定路径的目录部分
- Linux diff --比较两个文件并输出不同之处
- Linux df --查看磁盘空间占用情况
- Linux dd --拷贝并转换格式
- Linux 忘记root 管理员密码
- Linux date --显示,修改系统日期时间
- Linux curlftpfs--挂载FTP服务器
- Linux crontab --设置例行任务
- Linux cp --复制文件
- Linux clear --清楚终端屏幕,不是cls
- Linux chown --把用户拥有者修改为指定用户或组 2013年7月3日
- Linux 搭建FTP服务器
- 技术第一天
- Linux chmod --改变文件/目录的访问权限