4.shell的格式化输出(echo 、颜色输出)

目录

一、echo 输出

二、颜色代码

正文

一、echo 输出

Shell 的 echo 指令,用于字符串的输出

语法:echo string

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

 

1.echo 显示普通字符串

echo 字符串,字符串可以不加双引号

MBC02FV3MZMD6P:J_shell j$ echo hello world
hello world
MBC02FV3MZMD6P:J_shell j$ echo "hello world"
hello world

2.知识点【1】命令选项

  • -n 不要在最后自动换行
  • -e 若字符串中出现如下转移字符,则按照转义字符的意思处理
MBC02FV3MZMD6P:J_shell j$ echo "hello world"
hello world
MBC02FV3MZMD6P:J_shell j$ echo -n "hello world"
hello worldMBC02FV3MZMD6P:J_shell j$ 
hello worldMBC02FV3MZMD6P:J_shell j$ echo -n "Login:";read
Login:ll
MBC02FV3MZMD6P:J_shell j$ echo -n "data:";date +%F
data:2021-11-30
MBC02FV3MZMD6P:J_shell j$ 

先熟悉下面的转移字符的意思

知识点:转义字符

  • \a  发出警告声
  • \b 删除前一个字符
  • \c  最后不加上换行符号
  • \t  tab键, 制表符
  • \n  换行且光标移至首行

3.echo 显示转义字符(结合-e)

\a 结合-e,发出喇叭声;不加-e就是字符串

MBC02FV3MZMD6P:J_shell j$ echo "\a\a\a"
\a\a\a
MBC02FV3MZMD6P:J_shell j$ echo -e "\a\a\a"

MBC02FV3MZMD6P:J_shell j$ 

\t 插入tab键

MBC02FV3MZMD6P:J_shell j$ echo -e "\t\t\t Title"
             Title
MBC02FV3MZMD6P:J_shell j$ 

\b 删除前一个字符

MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba"
ba
MBC02FV3MZMD6P:J_shell j$ 

\c 回车不换行

MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba\c"
baMBC02FV3MZMD6P:J_shell j$ 

 组合举个例子:

form_output.sh

#!/bin/bash
  
echo -e "\t\t\t\tMcDonald Shop"
echo -e "\t\t1) Chicken"
echo -e "\t\t2) Chips"
echo -e "\t\t3) Hamburger"
MBC02FV3MZMD6P:J_shell j$ bash form_output.sh 
                McDonald Shop
        1) Chicken
        2) Chips
        3) Hamburger
MBC02FV3MZMD6P:J_shell j$ echo $?
0
MBC02FV3MZMD6P:J_shell j$ 

二、颜色代码

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

格式:

echo -e "\033[子背景颜色:文字颜色 字符串\033[0m"

举个例子:

echo -e "\033[41;36m hello world \033[0m"

 

  • 41的位置:表示底色,后面是分号
  • 36的位置:表示字的颜色
  • 文件颜色后面要有个m
  • 字符串前后可以没有空格,如果有的话,输出也是有空格
  • 最后的0m的位置表示属性,0m是关闭所有属性

下面是带颜色输出的参考范围;

#!/bin/bash
#
#下面是字体输出颜色及终端格式控制
#字体色范围:30-37
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
#字背景颜色范围:40-47
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;30m 红底黑字 \033[0m"
echo -e "\033[42;34m 绿底蓝字 \033[0m"
echo -e "\033[43;34m 黄底蓝字 \033[0m"
echo -e "\033[44;30m 蓝底黑字 \033[0m"
echo -e "\033[45;30m 紫底黑字 \033[0m"
echo -e "\033[46;30m 天蓝底黑字 \033[0m"
echo -e "\033[47;34m 白底蓝字 \033[0m"

#控制选项说明
#\033[0m 关闭所有属性
#\033[1m 设置高亮度
#\033[4m 下划线
echo -e "\033[4;31m 下划线红字 \033[0m"
#闪烁
echo -e "\033[5;34m 红字在闪烁 \033[0m"
#反影
echo -e "\033[8m 消隐 \033[0m "

#\033[30m-\033[37m 设置前景色
#\033[40m-\033[47m 设置背景色
#\033[nA光标上移n行
#\033[nB光标下移n行
echo -e "\033[4A 光标上移4行 \033[0m"
#\033[nC光标右移n行
#\033[nD光标左移n行
#\033[y;xH设置光标位置
#\033[2J清屏
#\033[K清除从光标到行尾的内容
echo -e "\033[K 清除光标到行尾的内容 \033[0m"
#\033[s 保存光标位置
#\033[u 恢复光标位置
#\033[?25| 隐藏光标
#\033[?25h 显示光标
echo -e "\033[?25l 隐藏光标 \033[0m"
echo -e "\033[?25h 显示光标 \033[0m"
#下面的这个例子是字体不停的闪烁。
#!/bin/bash
#
a=30
b=41
while true
do
echo -e "\033[${a}m光辉女郎\033[0m"
echo -e "\033[${a}m的吗西亚\033[0m"
echo -e "\033[${a}m洛克萨斯\033[0m"
a=$(($(($a%7))+30))
b=$(($(($b%7))+40))
#每次让字体颜色在30-37转换
#每次让背景颜色在40-47转换
echo -e "\033[4A\033[0m"
done 
原文地址:https://www.cnblogs.com/ananmy/p/15627095.html