参考书籍 Linux shell 脚本攻略
能够执行打印的方法有很多,格式也各不相同,主要有如下几个:
echo
printf
echo
命令
echo
是用于终端打印的基本命令。
- 默认情况下,
echo
在每次调用后会添加一个换行符。可使用标志-n
来忽略结尾的换行符。 - 可接受双引号字符串内的转义序列作为参数,采用
echo -e "包含转义序列的字符串"
的形式。如:echo -e "1\t2\t3"
- 三种打印方法:
$ echo "Hello world" #带双引号的文本
Hello world
$ echo Hello world #不带双引号的文本
Hello world
$ echo 'Hello world' #带单引号的文本
Hello world
每种方法的副作用如下:
- 如果希望打印
!
号,就不要将其放入双引号,或者加入转义字符\
将!
转义
$ echo Hello world!
$ echo 'Hello world!
$ echo "Hello world\!"
- 不带引号的
echo
中,无法在要显示的文本中使用分号;
- 使用单引号的
echo
时,Bash不会对单引号中的变量求值,而只是原样显示
$ var=3
$ echo '$var'
$var
$ echo "$var"
3
printf
命令
printf
使用的参数和C语言中的printf
函数一样。
-
printf
使用引用文本或由空格分隔的参数。
printf
可使用格式化字符串,可以指定字符串的宽度、左右对其方式等。 - 不会自动添加换行符,需要在需要的时候手动添加
#!/bin/bash
#文件名: printf.sh
printf "%-5s %-10s %-4s \n" No Name Mark
printf "%-5s %-10s %-4.2f\n" 1 Sarach 80.3456
printf "%-5s %-10s %-4.2f\n" 2 James 90.9989
格式化输出如下:
No Name Mark
1 Sarach 80.35
2 James 91.00
-
%s %c %d %f
都是格式替代符,其所对应的参数可以置于带引号的格式字符串之后。 -
%-5s
中-
表示左对其,若不用-
指定对其形式,则默认使用右对其形式。数字指定了宽度。
网友评论