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


语法


echo(选项)(参数)选项


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

  • \a 发出警告声;
  • \b 删除前一个字符;
  • \c 最后不加上换行符号;
  • \f 换行但光标仍旧停留在原来的位置;
  • \n 换行且光标移至行首;
  • \r 光标移至行首,但不换行;
  • \t 插入tab;
  • \v 与\f相同;
  • \\ 插入\字符;
  • \nnn 插入nnn(八进制)所代表的ASCII字符;


参数

变量:指定要打印的变量。


实例

用echo命令打印带有色彩的文字:


文字色:

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


背景色:

echo -e "\e[1;42mGreed Background\e[0m"

Greed Background颜色码:重置=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 消隐


echo -n 不换行输出

$echo -n "123"echo "456"

最终输出 

123456

而不是
123
456
echo -e 处理特殊字符

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

  • \a 发出警告声;
  • \b 删除前一个字符;
  • \c 最后不加上换行符号;
  • \f 换行但光标仍旧停留在原来的位置;
  • \n 换行且光标移至行首;
  • \r 光标移至行首,但不换行;
  • \t 插入tab;
  • \v 与\f相同;
  • \\ 插入\字符;
  • \nnn 插入nnn(八进制)所代表的ASCII字符;

下面举例说明一下:

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

dddd

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

adddd

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

a

dddd


格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 


例如: 

echo -e "\033[41;36m something here \033[0m"

其中41的位置代表底色, 36的位置是代表字的颜色 

那些ascii code 是对颜色调用的始末. 
\033[ ; m …… \033[0m 


字背景颜色范围:40----49 

  • 40:黑
  • 41:深红
  • 42:绿
  • 43:黄色
  • 44:蓝色
  • 45:紫色
  • 46:深绿
  • 47:白色


字颜色:30-----------39 30:黑 

  • 31:红
  • 32:绿
  • 33:黄
  • 34:蓝色
  • 35:紫色
  • 36:深绿
  • 37:白色


=======ANSI控制码的说明 

  1. \33[0m 关闭所有属性
  2. \33[1m 设置高亮度
  3. \33[4m 下划线
  4. \33[5m 闪烁
  5. \33[7m 反显
  6. \33[8m 消隐
  7. \33[30m -- \33[37m 设置前景色
  8. \33[40m -- \33[47m 设置背景色
  9. \33[nA 光标上移n行
  10. \33[nB 光标下移n行
  11. \33[nC 光标右移n行
  12. \33[nD 光标左移n行
  13. \33[y;xH设置光标位置
  14. \33[2J 清屏
  15. \33[K 清除从光标到行尾的内容
  16. \33[s 保存光标位置
  17. \33[u 恢复光标位置
  18. \33[?25l 隐藏光标
  19. \33[?25h 显示光标

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


语法


echo(选项)(参数)选项


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

  • \a 发出警告声;
  • \b 删除前一个字符;
  • \c 最后不加上换行符号;
  • \f 换行但光标仍旧停留在原来的位置;
  • \n 换行且光标移至行首;
  • \r 光标移至行首,但不换行;
  • \t 插入tab;
  • \v 与\f相同;
  • \\ 插入\字符;
  • \nnn 插入nnn(八进制)所代表的ASCII字符;


参数

变量:指定要打印的变量。


实例

用echo命令打印带有色彩的文字:


文字色:

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


背景色:

echo -e "\e[1;42mGreed Background\e[0m"

Greed Background颜色码:重置=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 消隐


echo -n 不换行输出

$echo -n "123"echo "456"

最终输出 

123456

而不是
123
456
echo -e 处理特殊字符

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

  • \a 发出警告声;
  • \b 删除前一个字符;
  • \c 最后不加上换行符号;
  • \f 换行但光标仍旧停留在原来的位置;
  • \n 换行且光标移至行首;
  • \r 光标移至行首,但不换行;
  • \t 插入tab;
  • \v 与\f相同;
  • \\ 插入\字符;
  • \nnn 插入nnn(八进制)所代表的ASCII字符;

下面举例说明一下:

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

dddd

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

adddd

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

a

dddd


格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 


例如: 

echo -e "\033[41;36m something here \033[0m"

其中41的位置代表底色, 36的位置是代表字的颜色 

那些ascii code 是对颜色调用的始末. 
\033[ ; m …… \033[0m 


字背景颜色范围:40----49 

  • 40:黑
  • 41:深红
  • 42:绿
  • 43:黄色
  • 44:蓝色
  • 45:紫色
  • 46:深绿
  • 47:白色


字颜色:30-----------39 30:黑 

  • 31:红
  • 32:绿
  • 33:黄
  • 34:蓝色
  • 35:紫色
  • 36:深绿
  • 37:白色


=======ANSI控制码的说明 

  1. \33[0m 关闭所有属性
  2. \33[1m 设置高亮度
  3. \33[4m 下划线
  4. \33[5m 闪烁
  5. \33[7m 反显
  6. \33[8m 消隐
  7. \33[30m -- \33[37m 设置前景色
  8. \33[40m -- \33[47m 设置背景色
  9. \33[nA 光标上移n行
  10. \33[nB 光标下移n行
  11. \33[nC 光标右移n行
  12. \33[nD 光标左移n行
  13. \33[y;xH设置光标位置
  14. \33[2J 清屏
  15. \33[K 清除从光标到行尾的内容
  16. \33[s 保存光标位置
  17. \33[u 恢复光标位置
  18. \33[?25l 隐藏光标
  19. \33[?25h 显示光标