在shell脚本编写过程中,我们有足够理由相信使用echo等打印输出命令的频率是相当高的。那下面我们来看看都有哪些打印输出命令以及它们的用法。
echo命令:
功能说明:默认打印输出到标准输出(屏幕)
输出的字符串以空白字符隔开
并在最后自动加上换行符
语 法:echo [-ne][字符串] /echo [--help][--version]
参 数:
-n: 取消自动换行功能
-e: 打开反斜杠|[ESC]键转义功能。字符串中出现以下字符,会特别处理,
不会当成一般字符输出。
\a 发出警告声
\b 删除前一个字符
\c 删除最后的字符及最后的换行
\e 删除最后的字符
\E 同\e
\f 换行但光标仍停留在原来的位置
\n 换行且光标移至行首
\r 光标移至行首,但不换行
\t 插入tab
\v 与\f同
\\ 插入\字符
\nnn 插入nnn(八进制)所代表的ASCII字符
-E: 取消反斜杠|[ESC]键转义功能(默认)
--help:显示帮助信息
--version:显示版本信息
特殊使用:格式化文本(包含文件颜色和样式等)
例如:
echo -e "\033[44;37;5m My\033[0m Color"
注释:
\033 为[ESC]键的ASCII码 表示终端转义字符开始
[44;37;5m 分别代表背景色 前景色 光标闪烁
0m 表示恢复到终端默认设置
m 表示设置属性并结束非常规字符序列
注意:输出文本颜色 必须使用-e选项
可选择的颜色/动作编码如下:
编码 颜色/动作
0 恢复到默认设置
1 设置粗体
2 设置一半亮度
4 设置下划线
5 设置闪烁
7 设置反向图像
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图像
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置***前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色(灰色)前景
38 在缺省的前景色上设置下划线
39 在缺省的前景色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置***背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色(灰色)背景
49 设置缺省黑色背景
其他编码:
\033[2J 清除屏幕
\033[0q 关闭所有键盘指示灯
\033[1q 设置"滚动锁定"指示灯(Scroll Lock)
\033[2q 设置"数值锁定"指示灯(Num Lock)
\033[3q 设置"大写锁定"指示灯(Caps Lock)
\033[15:40H 关闭移动到第15行,40列
\033[60G 光标移动到第60列
\077 发蜂鸣声beep
使用实例:
1,模拟Linux服务启动的输出信息
#!/bin/bash
#
Green="\033[32m"
Normal="\033[0m"
Jump="\033[60G"
Service=`basename $0`
if [[ $1 == start ]];then
echo -e "Strating $Service: $Jump[ ${Green}OK${Normal} ]"
elif [[ $1 == stop ]];then
echo -e "Stopping $Service: $Jump[ ${Green}OK${Normal} ]"
else
echo "Usage: ./$Service {start|stop}"
fi
执行结果:
2,彩色进度条:
#!/bin/bash
#
echo -e "\033[32m"
b=`echo -e "\033[42;32m[]\033[0m "`
echo Installing........
echo --------------------------------------------------------------
for ((i=0;$i<=60;i+=2))
do
printf $b
sleep 0.1
b=`echo -e "\033[42;32m[]\033[0m "`$b
done
echo -e "\033[32m"
echo --------------------------------------------------------------
echo "Complete!"
echo -e "\033[0m"
执行结果:
Printf命令:
功能描叙:一个更强大,更灵活的打印命令。
printf和C语言的使用方式类似。
和echo不一样的是,它不会在最后自动加上换行符。
需要手工使用\n来指定换行。
语 法:
printf format-string [arguments]
格式参数:
%c: ASCII字符,如果参数给出字符串,则打印第一个字符
%d: 十进制整数
%i: 同%d
%e: 浮点格式 ([-]d.精度[+-]dd)
%E: 浮点格式 ([-d].精度E[+-]dd)
%f: 浮点格式 ([-]ddd.precision)
%g: %e或者%f的转换,如果后尾为0,则删除它们
%G: %E或者%f的转换,如果后尾为0,则删除它们
%o: 八进制
%s: 字符串
%u: 非零正整数
%x: 十六进制
%X: 非零正数,16进制,使用A-F表示10-15
%%: 表示字符"%"
注 意:
如果给出的格式参数的个数超过给出的参数的个数,
那么超出的部分为0或者null
转载于:https://blog.51cto.com/shjia/1425602