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

echo string

您可以使用echo实现更复杂的输出格式控制。

1.显示普通字符串:

echo "It is a test"

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

echo It is a test

2.显示转义字符

echo "\"It is a test\""

结果将是:

<span style="color:#008800">"It is a test"</span>

同样,双引号也可以省略

3.显示变量

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

在我运行的时候是 一定要在name 前后加上大括号 ,这样写: ${ name } 才能正常运行。

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

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

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


 


4.显示换行

-e 一定要才能转义 \n 为换行,双引号可以不写

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

输出结果:

OK!

It it a test

5.显示不换行

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

输出结果:

OK! It is a test

6.显示结果定向至文件

把 it is a teat 写入文件 myfile中。

echo "It is a test" > myfile

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

echo '$name\"'

输出结果:

$name\"

8.显示命令执行结果

echo `date`

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

结果将显示当前日期

Thu Jul 24 10:08:46 CST 2014

  1. echo输出的字符串总结
    ==========================================================
                           引用变量  |         引用转移符  |  引用文本格式符(换行符、制表符)
    单引号  |           否           |             否             |                             否
    双引号  |           能           |             能             |                             能
    无引号  |           能           |             能             |                             否                          
    ==========================================================
  2. read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。
    测试文件 test.sh 代码如下:
read firstStr secondStr
echo "第一个参数:$firstStr; 第二个参数:$secondStr"

执行测试:

$ sh test.sh 
一 二 三 四
第一个参数:一; 第二个参数:二 三 四

实例, 文件 test.sh:

read -p "请输入一段文字:" -n 6 -t 5 -s password
echo "\npassword is $password"

参数说明:

  •  -p 输入提示文字
  •  -n 输入字符长度限制(达到6位,自动结束,第7位开始后面的内容无效)
  •  -t 输入限时(到5秒后自动结束输入)
  •  -s 隐藏输入内容 (输入时不显示输入内容)
$ sh test.sh 
请输入一段文字:
password is asdfgh