terminal是一个交互式工具,通过它,用户就可以和 shell 环境交互。
echo 用于在 terminal 中打印。默认会在每一次 echo 调用后面另起一个新行。echo 后跟的信息可以不带引号、带双引号、带单引号。双引号中不能有感叹号,但单引号中可以有感叹号。或者把引号去掉,有或者用转义符号 \。
当使用 echo 不带引号时,就不能用到逗号,因为逗号是命令间的分隔符。echo hello; hello就是2条命令。变量置换在单引号中就不行。
printf 也可用于在 terminal 中打印。printf 接受引号括起来的文本或参数,中间用空格隔开。该命令还可以使用格式化字符串。默认它不会产生新行。
#!/bin/bash
#Filename: printf.sh
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
%s, %c, %d, and %f 是格式置换字符。%-5s 中的 - 表示左对齐,5是宽度,如果没有指定 - ,则字符串就是右对齐,指定的宽度不足的话用空格补全。
要记住将 flags 放在命令中的字符串前面。
echo 输出的最后会有一新行,不想这样的话,可以带个 -n 标识。当使用转义序列时,用 echo -e,例如:echo -e "1\t2\t3"
打印带颜色的输出是利用转义序列来实现的。颜色由颜色代码来表示。例如reset=0,black=30,red=31,green = 32, yellow = 33, blue = 34, magenta = 35, cyan = 36, white = 37。
echo -e "\e[1;31m This is red text \e[0m" 中的\e[1;31m是一个转义字符串,用于将颜色设置为红色,
\e[0m 将颜色还原成原样。
常用的背景颜色代码有:reset = 0, black = 40, red = 41, green = 42, yellow = 43, blue = 44,
magenta = 45, cyan = 46, and white=47。例如:
echo -e "\e[1;42m Green Background \e[0m"