Contents
1.33. echo 输出颜色¶
echo -n ##不换行输出 == printf
-e #识别转义和特殊意义的符号,如换行符、n、制表符\t、转义符\等。特别加以处理,而不会将它当成一般文字输出echo
#特殊字符及其作用
\n #表示新的一行
\r #表示回车
\t #表示水平制表符
\v #表示垂直制表符
\b #表示后退符
\a #表示"alert"(蜂鸣或者闪烁)
\c #表示最后不加上换行符号
\\ #表示插入\字符
echo > log1.txt #清空日志
> log2.txt #清空日志
:>file1.doc #清空日志
: # shell 中的占位符,什么事也不做
printf # printf 中使用格式化字符串,还可以指定字符串的宽度、左右对齐方式等。在默认情况下, printf 并不像 echo 命令一样会自动添加换行符,我们必须在需要的时候手动添加
printf "%-10s%-10s%20.5f" " hujianli" "Lixiaohai " 200.6
hujianli Lixiaohai 200.60000
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
printf "%-5s %-10s %-4.2f\n" 2 James 90.9989
printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564
输出结果:
No Name Mark
1 Sarath 80.35
2 James 91.00
3 Jeff 77.56
printf "%-10s|%-3s|%-16s|%-33s|%s\n" "User" "Attempts" "IP address" "Host" "Time range"
User |Attempts|IP address |Host |Time range
$ printf "%-8s %-14s %-9s %-8s %-6s %-6s %-6s %s\n" \
> "Date" "IP address" "Device" "Capacity" "Used" "Free" \
> "Percent" "Status"
cat >abc.sh<<-eof # 将下面的内容覆盖到abc.sh脚本中
#!/bin/bash
#文件名:abc.sh
printf "%-5s %-10s %-4s\n" No Name Mark # 三个%分别对应后面的三个参数
printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.34 # 减号“-”表示左对齐
printf "%-5s %-10s %-4.2f\n" 2 James 90.998 # 5s表示第一个参数占用5个字符
printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564
eof
1.33.1. echo 中颜色表示¶
文本颜色【前景色】
# 文本颜色是由对应的色彩码来描述的。其中包括:重置=0,黑色=30,红色=31,绿色=32,
# 黄色=33,蓝色=34,洋红=35,青色=36,白色=37。
# 30~37 表示不同的颜色
echo -e "\e[1;30m This is text....\e[0m"
背景颜色【背景色】
# 40~47 数字表示不同的颜色
echo -e "\e[1;40m This is text....\e[0m"