1. echo 基本用法

echo 命令可以将后面跟的字符进行输出

功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号

语法:

echo [-neE][字符串]

选项

header 1header 2
-E(默认)不支持 \ 解释功能
-n不自动换行
-e启用 \ 字符的解释功能

显示变量

echo "$VAR_NAME"  # 用变量值替换,弱引用 
echo '$VAR_NAME'  # 变量不会替换,强引用

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

header 1header 2
\a发出警告声
\b退格键
\c最后不加上换行符号
\e escape相当于\033
\n换行且光标移至行首
\r回车,即光标移至行首,但不换行
\t插入tab
\\插入\字符
\0nnn插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)

示例

[root@centos8 ~]#echo -e 'a\x0Ab'
a
b
[root@centos8 ~]#echo -e '\033[43;31;1;5mbeijing\e[0m'
beijing

[root@centos8 ~]#echo \$PATH
$PATH

[root@centos8 ~]#echo \
> ^C
[root@centos8 ~]#echo \\
\
[root@centos8 ~]#echo \\\
> ^C
[root@centos8 ~]#echo \\\\
\\

[root@centos8 ~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos8 ~]#echo '$PATH'
$PATH
[root@centos8 ~]#

2. echo 高级用法

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码

具有颜色的字符,其格式如下:

"\033[字符背景颜色;字体颜色m字符串\033[0m"

\033[30m – \033[37m 设置前景色

\033[40m – \033[47m 设置背景色

#字符背景颜色范围: 40--47 
40:黑
41:红
42:绿
43:黄 
44:蓝
45:紫 
46:深绿 
47:白色


#字体颜色: 30--37 
30: 黑
31: 红
32: 绿
33: 黄 
34: 蓝 
35: 紫 
36: 深绿
37: 白色

加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:

header 1header 2
\033[0m关闭所有属性
\033[1m设置高亮度
\033[4m下划线
\033[5m闪烁
\033[7m反显
\033[8m消隐
\033[nA光标上移n行
\033[nB光标下移n行
\033[nC光标右移n列
\033[nD光标左移n列
\033[x;yH设置光标位置x行y列
\033[2J清屏
\033[K清除从光标到行尾的内容
\033[s保存光标位置
\033[u恢复光标位置
\033[?25l隐藏光标
\033[?25h显示光标
\033[2J\033[0;0H清屏且将光标置顶

示例

[root@centos8 ~]#cat function
color(){
	RES_COL=60
	MOVE_TO_COL="echo -en \\033[${RES_COL}G"
	SETCOLOR_SUCCESS="echo -en \\033[1;32m"
	SETCOLOR_FAILURE="echo -en \\033[1;31m"
	SETCOLOR_WARNING="echo -en \\033[1;33m"
	SETCOLOR_NORMAL="echo -en \E[0m"

	echo -n "$1" && $MOVE_TO_COL
	echo -n "["
	if [ $2 = "success" -o $2 = "0" ];then
		${SETCOLOR_SUCCESS}
		echo -n " OK "
	else
		if [ $2 = "failure" -o $2 = "1" ];then
			${SETCOLOR_FAILURE}
			echo -n "FAILED"
		else
			${SETCOLOR_WARNING}
			echo -n "WARNING"
		fi
	fi
	${SETCOLOR_NORMAL}
	echo -n "]"
	echo
}
[root@centos8 ~]#source function
[root@centos8 ~]#declare -f color
color ()
{
    RES_COL=60;
    MOVE_TO_COL="echo -en \\033[${RES_COL}G";
    SETCOLOR_SUCCESS="echo -en \\033[1;32m";
    SETCOLOR_FAILURE="echo -en \\033[1;31m";
    SETCOLOR_WARNING="echo -en \\033[1;33m";
    SETCOLOR_NORMAL="echo -en \E[0m";
    echo -n "$1" && $MOVE_TO_COL;
    echo -n "[";
    if [ $2 = "success" -o $2 = "0" ]; then
        ${SETCOLOR_SUCCESS};
        echo -n " OK ";
    else
        if [ $2 = "failure" -o $2 = "1" ]; then
            ${SETCOLOR_FAILURE};
            echo -n "FAILED";
        else
            ${SETCOLOR_WARNING};
            echo -n "WARNING";
        fi;
    fi;
    ${SETCOLOR_NORMAL};
    echo -n "]";
    echo
}
[root@centos8 ~]#color "backup" 0
backup                                                     [ OK ]
[root@centos8 ~]#color "backup" 1
backup                                                     [FAILED]
[root@centos8 ~]#color "backup" 2
backup                                                     [WARNING]
[root@centos8 ~]#

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐