|
|
# **echo**
|
|
|
|
|
|
## 说明
|
|
|
|
|
|
**echo命令** 用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下
|
|
|
打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的
|
|
|
作用
|
|
|
|
|
|
## 选项
|
|
|
|
|
|
echo [SHORT-OPTION] ... [STRING]
|
|
|
echo LONG-OPTION
|
|
|
-n 不换行输出内容
|
|
|
-e 若字符串中出现以下转义字符,则特别加以处理,而不会将它当成一般文字输出:
|
|
|
|
|
|
转义字符:
|
|
|
* \a 发出警告声
|
|
|
* \b 删除前一个字符
|
|
|
* \c 最后不加上换行符号
|
|
|
* \f 换行但光标仍旧停留在原来的位置
|
|
|
* \n 换行且光标移至行首
|
|
|
* \r 光标移至行首,但不换行
|
|
|
* \t 插入tab
|
|
|
* \v 与\f相同
|
|
|
* \\ 插入\字符
|
|
|
* \nnn 插入nnn(八进制)所代表的ASCII字符
|
|
|
* \e escape
|
|
|
* \0NNN 八进制值NNN(1-3位)的字节
|
|
|
* \xHH 十六进制值HH(1-2位)的字节
|
|
|
* -E 取消-e效果,默认就是这个
|
|
|
|
|
|
## 实例
|
|
|
|
|
|
```bash
|
|
|
echo "I live in `locale territory`" # 从locale数据库中展开信息
|
|
|
echo "$((0x2dec))" # 十六进制转十进制
|
|
|
|
|
|
# 用echo命令打印带有色彩的文字:
|
|
|
## 文字色:# 颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
|
|
|
echo -e "\e[1;31mThis is red text\e[0m"
|
|
|
|
|
|
* `\e[1;31m` 将颜色设置为红色
|
|
|
* `\e[0m` 将颜色重新置回
|
|
|
|
|
|
## 背景色:# 颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47
|
|
|
echo -e "\e[1;42mGreed Background\e[0m"
|
|
|
|
|
|
## 文字闪动:# 红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐
|
|
|
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
|
|
|
|
|
|
# 关于转义字符使用如下:
|
|
|
echo -e "\v\v\v" # 用-e选项,echo会打印出转义字符
|
|
|
echo -e "\042" # 根据"引号字符的八进制ASCII码打印出字符
|
|
|
echo $'\042' # 版本2开始bash允许使用$'\nnn'结构,这里'\nnn'表示一个八进制的值
|
|
|
echo $'\x22' # 使用$'\xnnn'结构也可以使用十六进制来转义
|
|
|
|
|
|
# 当使用像$'\x'的结构时,-e的选项是多余的
|
|
|
echo "NEW LINE and BEEP"
|
|
|
echo $'\n' # 新行
|
|
|
echo $'\a' # 警告(峰鸣)
|
|
|
|
|
|
# 用ASCII码值把字符赋给变量
|
|
|
quote=$'\042' # 引号"被赋值给变量quote
|
|
|
echo "$quote 这是一个引号字符串"
|
|
|
|
|
|
# 用连串的ASCII码把一串字符赋给变量
|
|
|
triple_underline=$'\137\137\137' # 137是字符'_'的ASCII码
|
|
|
echo "$triple_underline UNDERLINE $triple_underline"
|
|
|
|
|
|
ABC=$'\101\102\103\010' # 101, 102, 103分别是A, B, C字符的八进制ASCII码.
|
|
|
echo $ABC
|
|
|
|
|
|
escape=$'\033' # 033是ESC的ASCII码的八进制值
|
|
|
echo "\"escape\" echoes as $escape" # 不可见的输出
|
|
|
|
|
|
: << comment
|
|
|
一个字符串赋给变量时里面的组成部分可能会被转义,但如果单独一个转义字符(\)是不能赋给变量的
|
|
|
转义一个空格可以防止一个字符串参数被分割成多个命令行参数
|
|
|
转义符也提供了写一个多行命令的手段。一般地,每个单独的行有一个不同的命令,而在一行末尾的转义符转义新行符,命令序列则由下
|
|
|
一行继续
|
|
|
comment
|
|
|
``` |