echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
语法:

echo(选项)(参数)选项

echo -e  输出转义字符,将转义后的内容输出到屏幕上
echo -n  表示不换行输出 注:echo默认是换行输出的
echo -E  不解释转义字符

echo -e  激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

•\a 发出警告声;
•\b 删除前一个字符;
•\c 最后不加上换行符号;   ===>注:echo -e "\c"和echo -n ""效果一样。
•\f 换行但光标仍旧停留在原来的位置;
•\n 换行且光标移至行首;
•\r 光标移至行首,但不换行;
•\t 插入tab;
•\v 与\f相同;
•\\ 插入\字符;
•\nnn 插入nnn(八进制)所代表的ASCII字符;
•\0nn 插入0nn(八进制)代表的ASCII;
•\xHH  十六进制代表的ASCII字节

实例

注:echo -e "\c"和echo -n ""效果一样。

linux echo输出JAVA_HOME linux echo输出换行_字符串

$echo -e "a\bdddd"  //前面的a会被擦除
dddd

$echo -e "a\adddd" //输出同时会发出报警声音
adddd

$echo -e "a\ndddd" //自动换行
a
dddd

单引号 双引号 反向单引号的区别

[root@centos8 ~]#echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@centos8 ~]#echo "echo $HOSTNAME"
echo centos8.localdomain
[root@centos8 ~]#echo `echo $HOSTNAME`
centos8.localdomain
#结论:
单引号:强引用,变量和命令都不识别,都当成了普通的字符串
双引号:弱引用,不能识别命令,可以识别变量
反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内
容当成命令进行执行后,再交给调用反向单引号的命令继续执行

输出彩色的信息,显示结果展示如下:

linux echo输出JAVA_HOME linux echo输出换行_字符串_02

echo -e "\e[1;32mThis is red text\e[0m"
\e[1;32m 将字体颜色设置为绿色
\e[0m 将颜色重新置回
颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色:
echo -e "\e[1;42mGreed Background\e[0m"
颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

文字闪动:
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
红色数字处还有其它数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

[root@localhost ~]# echo -e "\e[1;41;5mGreed Background\e[0m"  ====>带红色背景色的文字闪动
Greed Background
[root@localhost ~]# echo -e "\e[1;32;5mGreed Background\e[0m"  ====>不带背景色的绿色文字闪动
Greed Background

linux echo输出JAVA_HOME linux echo输出换行_centos_03