终端作为交互式工具,用户可以通过其和shell环境进行交互,在终端之中打印文本是绝大多数shell脚本和工具日常需要进行的基本任务
打印的方式常见于
1.echo 常见的打印
后面会加一个隐藏的换行符
结合带双引号的文本,echo命令就可以该文本在终端中打印出来,类似的,不带双引号的文本也可以获得相同输出结果
echo “Welcome to Bash”
echo Welcome to Bash
echo ‘Welcome to ‘Bash’
当然,如果其中包含 ! 等特殊字符,会出现无法打印的错误
如果希望可以打印,就不要放入双引号之中,在前面加上一个特殊的转义字符 \ 将其转义
$echo Hello World!
或者
$echo ‘Hello World!’
$echo “Hello World \!”
接下来我们来看看不同的echo的效果
使用不带引号的echo的时候,没有办法在要显示的文本之中使用分号,因为分号;在bash shell之中当做命令定界符
例如 echo hello;hello,echo ,echo hello被视为一个命令,第二个hello是另外一个命令
使用带有单引号的echo时候,Bash不会对单引号里面的变量求值,比如 $var,而是原样显示
这就是 echo ‘$var’会返回 $var,
而 echo $var 会根据变量var的定义,来返回$var的值,或者什么都不返回
其他的用于终端打印的命令是printf,printf使用的参数和C中的一样
printf还可以利用参数来进行格式化字符串,但是并没echo那样自动添加换行符,只能在需要的时候手动添加
比如,下面的脚本之中
进行的格式化输出
%s 表示格式化字符串
每一行的字符串后面有一个换行符 \n
在这个脚本之中 %-5s指明了一个格式为左对齐,并且宽度为5的字符串替代的
如果不用-指定对齐方式,字符串则采用了右对齐的形式,宽度指定了保留了这个字符数的长度,多则锁进,长则以空格符进行填充
对于浮点数,我们可以使用其他的参数对小数部分进行了四舍五入
格式为 %-4.2f,在其中,.2指定保留2个小数位
echo中的转义转换符
echo中的默认换行符,可以使用-n来结束后面结尾的换行符
或者字符串中包含了转义字符,则可以使用 echo -e 这种方式,来进行带转义序列的输出
以彩色的方式输出
在终端中生成彩色的输出,亦可以使用转义序列
对应的颜色码有:
0 无色 黑色 30 红色 31 绿色 32 黄色 33 蓝色 34 洋红 35 青色 36 白色 37
\e[1;31 将文本颜色设置为了红色
\e[0m 将颜色重置了
而文本背景则是 不同颜色
0无色 黑40 依次类推
使用方式相同