Linux Shell echo命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

1
echo string

Shell符号注解

1
2
3
4
5
6
> 重定向输出到某个位置,替换原有文件的所有内容。
>> 重定向追加到某个位置,在原有文件的末尾添加内容。
< 重定向输入某个位置文件。
2> 重定向错误输出。
2>> 重定向错误追加输出到文件末尾。
&> 混合输出错误的和正确的都输出。

echo输出的字符串总结:

===================================================================

符号 能否引用变量 能否引用转移符 能否引用文本格式符(如:换行符、制表符)
单引号
双引号
无引号

===================================================================

1.显示普通字符串

1
echo "It is a test"

这里的双引号完全可以省略,以下命令与上面实例效果一致:

1
echo It is a test

2.显示转义字符

1
echo "\"It is a test\""

结果将是:

1
"It is a test"

同样,双引号也可以省略

3.显示变量

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。

read 参数说明:

1
2
3
4
-p 输入提示文字
-n 输入字符长度限制(达到6位,自动结束)
-t 输入限时
-s 隐藏输入内容

示例:

1
2
3
#!/bin/sh
read name
echo "$name It is a test"

以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:

1
2
3
[root@www ~]# sh test.sh
OK #标准输入
OK It is a test #输出

4.显示换行

1
2
echo -e "OK! \n" # -e 开启转义
echo "It is a test"

输出结果:

1
2
3
OK!

It is a test

5.显示不换行

1
2
3
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"

输出结果:

1
OK! It is a test

6.显示结果定向至文件

1
echo "It is a test" > myfile

7.原样输出字符串,不进行转义或取变量(用单引号)

1
echo '$name\"'

输出结果:

1
$name\"

8.显示命令执行结果

1
echo `date`

注意: 这里使用的是反引号 `, 而不是单引号 ‘。

结果将显示当前日期

1
Thu Jul 24 10:08:46 CST 2014

参考:

Shell echo命令