1.单引号和双引号的区别
使用双引号时候,echo会处理一些特殊字符,例如$;使用单引号时,单引号的内容会原样输出,例如:
oracle[~]$echo '$ORACLE_HOME'
$ORACLE_HOME
oracle[~]$echo "$ORACLE_HOME"
/u01/oracle
2. 字符转义
除了单引号可以进行转义外,使用右斜杠也可以进行转义:
oracle[~]$echo "\$ORACLE_HOME"
$ORACLE_HOME
oracle[~]$echo \$ORACLE_HOME
$ORACLE_HOME
3. 如何打印一些特殊字符
如果没有加别的选项,\用于转义
oracle[~]$echo \\$ORACLE_HOME
\/u01/oracle
要打印一些特殊字符,那就需要使用-e选项配合右斜杠(\)
-e选项使用方法如下:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 插入垂直方向上的制表符;
\\ 插入\字符;
\0NNN byte with octal value NNN (1 to 3 digits)
\xHH byte with hexadecimal value HH (1 to 2 digits)
在这个时候,需要加双引号:
(1).不换行输出(类似echo -n):
oracle[~]$echo -e "您好\c"
您好oracle[~]$
(2).输出tab:
oracle[~]$echo -e "商品\t\t 单价"
商品 单价
(3).输出某个8进制数表示的ascii码
oracle[~]$echo -e "\0123"
S
(4).输出某个16进制数表示的ascii码
oracle[~]$echo -e "\x53"
S
4.使用转义序列生成彩色输出
文本每种颜色都有自己的对应码:
重置-0,黑色-30,红色-31,绿色-32,黄色-33,蓝色-34,洋红-35,青色-36,白色-37
同样,文本背景色也有自己的对应码:
重置-0,黑色-40,红色-41,绿色-42,黄色-43,蓝色-44,洋红-45,青色-46,白色-47
下面脚本展示彩色输出:
[~/shell/echo]#cat color.sh
#!/bin/bash
echo -e "\e[1;31m 红色\c \e[0m"
echo -e "\e[1;32m 绿色\c \e[0m"
echo -e "\e[1;33m 黄色\c \e[0m"
echo -e "\e[1;34m 蓝色\c \e[0m"
echo -e "\e[1;35m 洋红\c \e[0m"
echo -e "\e[1;36m 青色\c \e[0m"
echo -e "\e[1;37m 白色\c \e[0m"
echo -e "\e[1;30m 重置 \e[0m"
echo -e "\e[1;31m \e[1;46m 红色\c \e[0m"
echo -e "\e[1;32m \e[1;46m 绿色\c \e[0m"
echo -e "\e[1;33m \e[1;46m 黄色\c \e[0m"
echo -e "\e[1;34m \e[1;46m 蓝色\c \e[0m"
echo -e "\e[1;35m \e[1;46m 洋红\c \e[0m"
echo -e "\e[1;36m \e[1;46m 青色\c \e[0m"
echo -e "\e[1;37m \e[1;46m 白色\c \e[0m"
echo -e "\e[1;30m \e[1;46m 重置 \e[0m"
输出内容如下: