linux中echo命令使用方法
echo 命令通常用来进行在终端上输出字符串或者变量提取后的值也可将要显示的内容输出到文本中
-
echo hello world 就会直接在终端显示 hello world (echo “hello world” 显示相同)使用echo会自动换行如在脚本中
#!/bin/bash echo hello world echo happy
显示为
hello world
happy -
若使用echo -n则不自动换行同样的上述代码
#!/bin/bash echo -n hello wolrd echo -n happy
将会显示
hello worldhappy -
-E为禁止使用转义字符echo默认为-E
-
需要使用转义字符时使用echo -e使用-e参数时可以 处理转移字符若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号
\f 换行但光标仍旧停留在原来的位置
\n 换行且光标移至行首
\r 光标移至行首,但不换行
\t 插入tab
\v 与\f相同
\ 插入\字符
\nnn 插入nnn(八进制)所代表的ASCII字符
echo -e还可以用来设置字体的字体颜色,背景颜色其工作原理为有一些控制字符被控制台终端读取时会影响文本的显示方式即终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式下的系统显示功能,与具体语言无关。这些控制字符的通用格式如下:
Esc[{attr1};…;{attrn}m
1.转义序列以ESC开头该字符的ASCII码该字符的十进制为27,八进制表示为033这也是后面的/033由来还可以用/e代替
2.多数转移序列高于两个字符通常以Esc[开头被称为控制序列引导符通常写为\033[或者\e[
3.Esc[引导转义序列,{attr1};…{attrn} 是若干属性, 通常是由一个有特定意义的数字代替, 每个属性之间用分号分隔;m表示设置属性并结束转义序列
通过转义字符设置输出字体颜色命令格式为
echo -e "\033[字体背景颜色;字体颜色m字符串\033[0m"
其中\033[0m是为了关闭前面的显示设置恢复默认的终端输出属性,否则会影响后续的输出。(注 意,转义序列可被控制字符’CAN’(Cancel )和’SUB’(Substitute)中断)
例如echo -e "\033[40;34m hello world\033[0m"
hello world为黑底蓝字
其中40的位置代表底色,34的位置是代表字的颜色以下是echo -e "\033[字体背景颜色;字体颜色m字符串\033[0m
具体命令格式:
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\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 显示光标
设置字体颜色:30m-37m
黑色: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"
设置字体背景颜色:40m-47m
黑色背景:echo -e "\033[40m 黑色底 \033[0m"
红色背景:echo -e "\033[41m 红色底 \033[0m"
绿色背景:echo -e "\033[42m 绿色底 \033[0m"
黄色背景:echo -e "\033[43m 黄色底 \033[0m"
蓝色背景:echo -e "\033[44m 蓝色底 \033[0m"
紫色背景:echo -e "\033[45m 紫色底 \033[0m"
天蓝背景:echo -e "\033[46m 天蓝底 \033[0m"
白色背景:echo -e "\033[47m 白色底 \033[0m"
-
其中显示打印字体内容在第几行,第几列echo 使用‐e 选项后,在打印参数中可以指定 H,设置需要打印内容的 x,y 轴的定位坐标,可以直接使用
echo ‐e "\033x;yH"
xy为横纵坐标H后可接需要显示的字符;也可以设置字体颜色后然后设置需要打印内容的 x,y 轴:echo -e "\033[40;34m字符串\033[x;yH"
;附上一份进度条的代码
#!/bin/bash
while :
do
for i inseq 20
doecho -e "\033[3;${i}H*" sleep 0.2 echo -e "\033[40;34m$i\033[5;${i}H*" sleep 0.2 done clear for i in {20..1} do echo -e "\033[3;${i}H*" sleep 0.2 echo -e "\033[40;34m$i\033[5;${i}H*" sleep 0.1 done clear
done
本文作者为夏雨滴荷竹,原文链接为 https://blog.csdn.net/qq_44929785/article/details/98248279
转载需著名原文链接,谢谢。