echo
===

输出指定的字符串或者变量

## 补充说明

**echo命令** 用于在shell中打印shell变量的值，或者直接输出指定的字符串。linux的echo命令，在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的，因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字，一般起到一个提示的作用。

###  语法 

```shell
echo(选项)(参数)
```

###  选项 

```shell
-e：启用转义字符。
-E: 不启用转义字符（默认）
-n: 结尾不换行
```

使用`-e`选项时，若字符串中出现以下字符，则特别加以处理，而不会将它当成一般文字输出：

- `\a` 发出警告声；
- `\b` 删除前一个字符；
- `\c` 不产生进一步输出 (\c 后面的字符不会输出)；
- `\f` 换行但光标仍旧停留在原来的位置；
- `\n` 换行且光标移至行首；
- `\r` 光标移至行首，但不换行；
- `\t` 插入tab；
- `\v` 与\f相同；
- `\\` 插入\字符；
- `\nnn` 插入 `nnn`（八进制）所代表的ASCII字符；

###  参数 

变量：指定要打印的变量。

###  实例 

```shell
/bin/echo Hello, world!
```

在上面的命令中，两个词（Hello 和 world！）作为单独的参数传递给 echo，并且 echo 按顺序打印它们，用空格分隔

下一个命令产生相同的输出：

```shell
/bin/echo 'Hello, World!'
```

但是，与第一个示例不同，上述命令提供了单引号字符串 'Hello, world!' 作为一个单一的一个参数。

单引号将可靠地保护它免受 shell 解释，将特殊字符和转义序列逐字传递给 echo。

例如，在 `bash shell` 中，变量名前面有一个美元符号 ($)。 在下一个命令中，引号内的变量名按字面意思处理； 在引号之外，它被转换为它的值。

```shell
/bin/echo 'The value of $PATH is' $PATH
# The value of $PATH is
# /home/hope/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
```

用echo命令打印带有色彩的文字：

**文字色：** 

```shell
echo -e "\e[1;31mThis is red text\e[0m"
This is red text
```

*   `\e[1;31m` 将颜色设置为红色
*   `\e[0m` 将颜色重新置回

颜色码：重置=0，黑色=30，红色=31，绿色=32，黄色=33，蓝色=34，洋红=35，青色=36，白色=37

```shell
echo -e "\x1b[30;1m 0 黑色 \x1b[0m"\
"\x1b[31;1m 1 红色 \x1b[0m"\
"\x1b[32;1m 2 绿色 \x1b[0m"\
"\x1b[33;1m 3 黄色 \x1b[0m"\
"\x1b[34;1m 4 蓝色 \x1b[0m"\
"\x1b[35;1m 5 洋红 \x1b[0m"\
"\x1b[36;1m 6 青色 \x1b[0m"\
"\x1b[37;1m 7 白色 \x1b[0m"
```

 **背景色** ：

```shell
echo -e "\e[1;42mGreed Background\e[0m"
Greed Background
```

颜色码：重置=0，黑色=40，红色=41，绿色=42，黄色=43，蓝色=44，洋红=45，青色=46，白色=47

 **文字闪动：** 

```shell
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
```

红色数字处还有其他数字参数：0 关闭所有属性、1 设置高亮度（加粗）、4 下划线、5 闪烁、7 反显、8 消隐



**输出内容结尾不添加换行符**

```shell
echo -n 'hello'
```
