## 介绍
在命令的不同阶段,我们需要给出某些阶段性质的显示结果。echo就是用于这个的,我们在完成或者开始或者进行某些提示的操作的时候,需要打印一些提示信息或者报文,另外在需要用户交互输入某些参数时也可以进行操作。
## 语法
### 基本语法
echo msg 引号加不加均可,等效
### 显示转义字符
~~~
echo "\"It is a test\""
"It is a test"
~~~
### 显示变量
~~~
#下面的代码将从用户输入中得到一个参数,并用到打印中
read name
echo $name is a test
~~~
### 显示换行
~~~
echo -e "OK! \n" # -e 开启转义
echo "It it a test"
~~~
### 显示不换行 ,本文换行的两个文本
~~~
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
~~~
### 显示结果导出到文件
`echo "It is a test" > myfile`
### 原样输出字符串,不进行转义或取变量(用单引号)
`echo '$name\"'`
### 显示命令执行结果
~~~
echo `date`
Thu Jul 24 10:08:46 CST 2014
~~~
### 引号内容
| 能否引用变量 | 能否引用转移符 | 能否引用文本格式符(如:换行符、制表符) |
| --- | --- | --- |
| 单引号 | 否 | 否 | 否 |
| 双引号 | 能 | 能 | 能 |
| 无引号 | 能 | 能 | 否 |
### 解析参数
read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。
-p 输入提示文字
-n 输入字符长度限制(达到6位,自动结束)
-t 输入限时
-s 隐藏输入内容
~~~
# demo.sh 文件
read -p "输入个人信息" name sex info
echo $name 先生,性别 : $sex,个人信息:$info
echo $name 先生,性别 : $sex,个人信息 >info.txt
sh demo.sh
输入个人信息张三 男 本科 电子商务 码农
张三 先生,性别 : 男,个人信息:本科 电子商务 码农
~~~