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.

3.2 KiB

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效果默认就是这个

实例

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