简介
echo
命令用于在 shell 中打印 shell 变量的值, 或者直接输出指定的字符串.
linux 的 echo 命令在 shell 编程中极为常用, 在终端下打印变量 value 的时候也是常常用到的, 因此有必要了解下 echo 的用法.
语法
1 | echo [选项] [参数] |
选项
-n — 不打印尾部换行
-e — 启用反斜线
\
转义使用
-e
选项时, 若参数中出现以下字符, 会加以特别处理:\\
反斜线\a
警告音\b
回退 (删除前一个字符)\e
删除此标志后的一个字符\c
不产生进一步输出 (\c 后面的字符不会被输出)\f
换行但光标仍旧停留在原来的位置\r
光标移至行首,但不换行\n
换行\t
水平制表符\v
垂直制表符\0NNN
打印八进制值为 NNN 的字符\xHH
打印十六进制值为 HH 的字符
-E — 禁用反斜线
\
转义 (默认选项)默认情况下, echo 命令不会对反斜线
\
进行转义Ubuntu 18.10 环境下测试
echo
命令默认会对反斜线进行转义, 与文档说法相悖. 所以使用echo
命令时最好指明参数.–help — 显示帮助文档
Ubuntu 18.10 环境下测试此选项无效, 命令会输出 “–help” 字符串.
–version — 显示版本信息
Ubuntu 18.10 环境下测试此选项无效, 命令会输出 “–version” 字符串.
参数
常规字符串
直接打印字符串.
系统变量
打印变量值.
示例
打印字符串
1
echo I love Linux
打印变量值
1
echo $PATH
打印转义字符
反斜线
\\
1
echo -e \\
警告音
\a
1
echo -e \\a
系统会发出警告音.
回退
\b
1
echo -e 123\\b456
Ubuntu 18.10 环境下测试, 当
\\b
位于字符串末尾时, 不会产生回退效果.删除符
\e
1
echo -e \\e123
终止输出
\c
1
echo -e 1234\\c5678
水平制表符
\t
1
echo -e aaa\\tbbb\\tccc\\tddd\\teee
垂直制表符
\v
1
echo -e aaa\\vbbb\\vccc\\vddd\\veee
换行符
\n
1
echo -e 1\\n2\\n3\\n4\\n5
光标移至行首,但不换行
\r
1
echo -e 123456789\\rabcd
\r
会将光标移至行首, 所以 “abcd” 覆盖掉了先前打印的 “1234”, 产生了 “abcd456789” 的输出.换行但光标仍旧停留在原来的位置
\f
1
echo -e 1\\f2\\f3\\f4\\f5
\f
与垂直制表符\v
并不一样, 命令行下展现不出他们之间的差异, 参照r
符号理解即可.八进制值为 NNN 的字符
1
echo -e \\0101
八进制值 101 对应十进制值 65, 也就是字符 “A”.
十六进制值为HH的字符
1
echo -e \\x41
十六进制值 41 对应十进制值 65, 也是字符 “A”.
打印颜色
"\e[M;NmString"
- M 代表文字属性: 0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐
- N 代表文字颜色:
- 前景色: 重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
- 背景色: 重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47
- 必须使用双引号包围参数.
设置文字颜色
1
echo -e "\e[31mThis is red text"
使用
\e[Nm
设置文字颜色:N 代表颜色码: 重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
设置文字背景色
1
echo -e "\e[42mGreed Background"
使用
\e[Nm
设置文字背景色:N 代表颜色码: 重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47
文字闪动
1
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
参考文献
- man 文档
- echo 命令,Linux echo 命令详解:输出指定的字符串或者变量 - Linux 命令搜索引擎
- Linux中的15个‘echo’ 命令实例 — tecmint Avishek Kumar