shell脚本(3)-格式化输出

一个程序需要有0个或以上的输入,一个或更多输出

一、echo语法

1、功能:将内容输出到默认显示设备。

echo命令功能在显示器上显示一段文字,一般提到提示的作用

2、语法:echo[-ne][字符串]

补充说明:echo会将输入的字符串送往标准输出,输出的字符串以空白字符隔开,并在最后加上换行号。

命令选项:

-n:不在最后自动换行:

[root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]#
[root@localhost ~]# echo -n "Login: ";read
Login: aaa
[root@localhost ~]# echo -n "date: ";date +%F
date: 2021-07-03

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

转义字符:

a:发出警告声

:删除前一个字符

c:最后不加上换行符

f:换行但光标仍旧停留在原来的位置

:换行且光标移至行首

:光标移至行首,但不换行

:插入tab

v与f相同

插入字符

nn插入nnn(八进制)所代表的ASCII字符

-help显示帮助-version显示版本信息

[root@localhost ~]# echo  -e "			a哈哈
响了aaa"
            哈哈
响了aa
[root@localhost test20210720]# vi time.sh
#
!/bin/bash #倒数计时脚本 for time in 'seq 9 -1 0';do echo -n -e "$time" sleep 1 done ech

二、颜色代码

1、概念:

脚本中echo显示内容带颜色显示,需要使用-e

2、格式说明:

格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码"

例如:

[root@localhost ~]# echo -e "33[41;36m something here 33[0m" #
 something here

(1)字背景颜色和文字颜色之间是英文的

(2)文字颜色后面有个m

(3)字符串前后可以没有空格,如果有的话,输出也是同研发的空格

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

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

代码如下:

echo -e "33[40;37m 黑底白字 33[0m"
echo -e "33[41;37m 红底白字 33[0m"
echo -e "33[42;37m 绿底白字 33[0m"
echo -e "33[43;37m 黄底白字 33[0m"
echo -e "33[44;37m 蓝底白字 33[0m"
echo -e "33[45;37m 紫底白字 33[0m"
echo -e "33[46;37m 天蓝底白字 33[0m"
echo -e "33[47;30m 白底黑字 33[0m"

注:可以把所有的033换为E;所实现的效果是一样的

例:

echo -e "33[40;37m 黑底白字 33[0m"
echo -e "E[40;37m 黑底白字 E[0m"

4、字颜色:30 - 39

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

代码如下:

echo -e "33[47;30m 白底黑字 33[0m"
echo -e "33[31m 红色字 33[0m"
echo -e "33[32m 绿色字 33[0m"
echo -e "33[33m 橙色字 33[0m"
echo -e "33[34m 蓝色字 33[0m"
echo -e "33[35m 紫色字 33[0m"
echo -e "33[36m 天蓝字 33[0m"
echo -e "33[37m 白色字 33[0m"

5、ANSI控制码

33[0m 关闭所有属性 
33[01m 设置高亮度 
33[04m 下划线 
33[05m 闪烁 
33[07m 反显 
33[08m 消隐 
33[30m -- 33[37m 设置前景色 
33[40m -- 33[47m 设置背景色 
33[nA 光标上移n行 
33[nB 光标下移n行 
33[nC 光标右移n行 
33[nD 光标左移n行 
33[y;xH设置光标位置 
33[2J 清屏 
33[K 清除从光标到行尾的内容 
33[s 保存光标位置 
33[u 恢复光标位置 
33[?25l 隐藏光标 
33[?25h 显示光标

例如:

让字体变为红色并且不停的闪烁

echo -e "33[31m 33[05m 请确认您的操作,输入 [Y/N] 33[0m"

 

原文地址:https://www.cnblogs.com/mrwhite2020/p/15017973.html