Linux 命令 echo && printf

输出字符串到标准输出
echo [-neE] [参数 ...]
-n 输出完不换行
-e 开启\转义
-E explicitly suppress interpretation of backslash escapes
转义字符:
\a alert (bell) 发出警告声
\b backspace 删除前一个字符
\c suppress further output 取消后面输出
\e escape character ESC
\E escape character
\f form feed 光标在原来位置换行
\n new line 换行符
\r carriage return 回车符
\t horizontal tab tab制表符
\v vertical tab 垂直制表符
\\ backslash 反斜杠
\0nnn the character whose ASCII code is NNN (octal). NNN can be 0 to 3 octal digits
\xHH the eight-bit character whose value is HH (hexadecimal). HH can be one or two hex digits

可以使用ANSI转义代码图形再现序列(SGR sequences)输出彩色文字:
ANSI ESCAPE SEQUENCES又称为VT100系列控制码,国内译为ANSI控制码。顾名思义,需要VT100系列终端的支持,当然现在已经不在局限于VT100了,包括 xterm, linux 都能很好完成。
ANSI控制码开始的标志都为ESC[,ESC 对应 ASCII 码表的 \033(八进制), \x1b(十六进制)
BGGREEN=`echo "\033[42m"`
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"

格式:\e[背景色;前景色;效果m
3个参数,顺序任意,数量任意
echo -e "\e[1;31mThis is red text\e[0m"

来自: http://man.linuxde.net/echo
echo -e "\e[1;31mThis is red text\e[0m"

来自: http://man.linuxde.net/echo
echo -e "\e[1;31mThis is red text\e[0m"

来自: http://man.linuxde.net/echo
echo -e "\e[1;31mThis is red text\e[0m"

来自: http://man.linuxde.net/echo
echo -e "\e[1;31mThis is red text\e[0m"

来自: http://man.linuxde.net/echo
echo -e "\e[1;31mThis is red text\e[0m"
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
\e[1;31m 将颜色设置为红色
\e[0m 将颜色重新置回
颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

来自: http://man.linuxde.net/echo
文字颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
背景色颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47
红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

printf格式化输出,不会在最后自动换行
printf  format-string  [arguments...]
与 C 语言 printf() 函数的不同:
  • printf 命令不用加括号
  • format-string 可以没有引号,但最好加上,单引号双引号均可。
  • 参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换
  • arguments 使用空格分隔,不用逗号。