linux中echo命令,在编程中时常使用,在终端进行打印变量时也时常使用,因此笔者作出以下归纳。
一,功能说明:显示文字。
语 法:echo [options][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后自动加上换行号。
参 数:-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
--help 显示帮助
--version 显示版本信息
二,echo的其他用法
(1)输入/输出重定向
标准输入 stdin -> /proc/self/fd/0 keyboard <
标准输出 stdout -> /proc/self/fd/1 monitor > (默认输出)
错误输出 stderr -> /proc/self/fd/2 monitor 2>
两个输出流 (正确信息和错误信息)
例: ls /vat >> /tmp/right 2>> /tmp/err
正确信息输入到/tmp/right中,错误信息输入到/tmp/err
(2)结合>及>>的使用
&>合并信息输出流 不支持&>>
> 输出重定向会覆盖原内容
>>追加信息
例:
echo “内容” >> 可以在文件尾部追加一行
注:set -C 打开避免覆盖重定向功能
set +C 关闭避免覆盖重定向功能
然而echo “内容” >| 如果就是想覆盖原文件,可以使用此法
(3)结合管道使用
管道 把前有一个输出结果当成第二个输入进行执行
例:
echo “123” |passwd --stdin redhat
默认passwd是从键盘上接受输入,而--stdin可以接受前一个内容,此处可以设置用户redhat的密码为123
例:
ls -l |tee /tmp/1.out |more tee相当于一个丁字路口
可以将ls -l的内容输入到/tmp/1.out文件中,同时也可以分页显示在屏幕上
(4)其他使用
自定义输出重定向 ( 将多个输出都保存至同一个文件)
例:
exec 3>> /tmp/all.out 相当于一直打开此文件(数字3可以是0-9)
ls -l >&3
ls /var >&3
exec 3>&-关闭自定义重定向
打开/tmp/all.out文件,将ls -l的内容及ls /var输入到/tmp/all.out文件,最后关闭文件。
> /dev/null丢弃数据 (/dev/null 位桶)
例:
grep ”user“ /etc/psaswd &>/dev/null 将输出结果丢弃