Linux 中使用 echo 命令输出变量值
一、简介
echo 命令用于在 Shell 中打印 Shell 变量的值,或者直接输出指定的字符串。
命令格式:echo [选项] [参数]
选项说明:
- -n: 输出时,不在行尾添加换行符
- -e: 使反斜杠的转义功能生效
- -E: 禁用反斜杠的转义功能,为默认选项
- --help: 显示帮助信息并退出
- --version: 显示版本信息并退出
使用 -e 选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
- \\:反斜杠;
- \a:发出警告声;
- \b:删除前一个字符;
- \c:截断不输出\c后面的内容;
- \e:escape,相当于 \033
- \f:换行,但光标仍旧停留在原来的位置;
- \n:换行且光标移至行首;
- \r:光标移至行首,但不换行;
- \t:插入tab;
- \v:与\f相同;
- \0NNN:插入NNN(八进制)所代表的ASCII字符;
- \xHH:插入HH(十六进制)所代表的ASCII字符;
二、控制选项
可以使用 echo 打印带有颜色的字体,只需要在 Linux 终端下输出带颜色的文字只需在文字前面添加如下格式:
\033[显示方式;前景色;背景色m
其中\033是ESC健的八进制,\033[即告诉终端后面是设置颜色的参数,显示方式,前景色,背景色均是数字。数字含义如下:
显示方式 意义
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
颜色数字代号如下:
前景色 背景色 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
其他选项:
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
实例如下:
【1】显示红色字体:
# echo -e "\e[1;31mThis is red text\e[0m" ``` 输出:This is red text
其中,\e[0m表示恢复终端默认设置。
【2】显示绿色背景字体:
# echo -e "\e[1;42mGreed Background\e[0m" Greed Background
【3】文字闪动。使用前景色31(红色),背景色42(绿色)闪动:
# echo -e "\033[5;31;42mMySQL Server Stop...\033[0m"
三、常用示例
1、不换行输出。
echo默认换行输出,使echo不换行输出有两种方法。
方法一:使用命令选项-n禁止输出换行符。
# echo -n what you want to output
方法二:使用命令选项 -e 让 echo 识别转义字符\c,echo 默认是不识别转义字符的。转义字符\c使用man echo查看echo的使用手册,其意思是produce no further output,表示截断不输出\c后面的内容。
# echo -e "lalalala\cend"
lalalala
2、显示转义字符
# echo "\"It is a test\""
"It is a test"
3、原样输出字符串,不进行转义或取变量(用单引号)
# echo '$name\"'
$name\"
4、显示命令执行结果
# echo `date`
注意:这里使用的是反引号 `, 而不是单引号 '。