You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.2 KiB

6 years ago
# **echo**
7 years ago
6 years ago
## 说明
7 years ago
5 years ago
**echo命令** 用于在shell中打印shell变量的值或者直接输出指定的字符串。linux的echo命令在shell编程中极为常用, 在终端下
打印变量value的时候也是常常用到的因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字一般起到一个提示的
作用
6 years ago
5 years ago
## 选项
7 years ago
6 years ago
echo [SHORT-OPTION] ... [STRING]
echo LONG-OPTION
5 years ago
-n 不换行输出内容
-e 若字符串中出现以下转义字符,则特别加以处理,而不会将它当成一般文字输出:
7 years ago
5 years ago
转义字符:
6 years ago
* \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效果默认就是这个
5 years ago
## 实例
7 years ago
5 years ago
```bash
6 years ago
echo "I live in `locale territory`" # 从locale数据库中展开信息
5 years ago
echo "$((0x2dec))" # 十六进制转十进制
7 years ago
5 years ago
# 用echo命令打印带有色彩的文字
6 years ago
## 文字色:# 颜色码:重置=0黑色=30红色=31绿色=32黄色=33蓝色=34洋红=35青色=36白色=37
7 years ago
echo -e "\e[1;31mThis is red text\e[0m"
6 years ago
* `\e[1;31m` 将颜色设置为红色
* `\e[0m` 将颜色重新置回
7 years ago
6 years ago
## 背景色:# 颜色码:重置=0黑色=40红色=41绿色=42黄色=43蓝色=44洋红=45青色=46白色=47
7 years ago
echo -e "\e[1;42mGreed Background\e[0m"
6 years ago
## 文字闪动:# 红色数字处还有其他数字参数0 关闭所有属性、1 设置高亮度加粗、4 下划线、5 闪烁、7 反显、8 消隐
7 years ago
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
5 years ago
# 关于转义字符使用如下:
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
```