參考書(shū)籍 Linux shell 腳本攻略
能夠執(zhí)行打印的方法有很多,格式也各不相同,主要有如下幾個(gè):
echoprintf
echo命令
echo是用于終端打印的基本命令。
- 默認(rèn)情況下,
echo在每次調(diào)用后會(huì)添加一個(gè)換行符。可使用標(biāo)志-n來(lái)忽略結(jié)尾的換行符。 - 可接受雙引號(hào)字符串內(nèi)的轉(zhuǎn)義序列作為參數(shù),采用
echo -e "包含轉(zhuǎn)義序列的字符串"的形式。如:echo -e "1\t2\t3" - 三種打印方法:
$ echo "Hello world" #帶雙引號(hào)的文本
Hello world
$ echo Hello world #不帶雙引號(hào)的文本
Hello world
$ echo 'Hello world' #帶單引號(hào)的文本
Hello world
每種方法的副作用如下:
- 如果希望打印
!號(hào),就不要將其放入雙引號(hào),或者加入轉(zhuǎn)義字符\將!轉(zhuǎn)義
$ echo Hello world!
$ echo 'Hello world!
$ echo "Hello world\!"
- 不帶引號(hào)的
echo中,無(wú)法在要顯示的文本中使用分號(hào); - 使用單引號(hào)的
echo時(shí),Bash不會(huì)對(duì)單引號(hào)中的變量求值,而只是原樣顯示
$ var=3
$ echo '$var'
$var
$ echo "$var"
3
printf命令
printf使用的參數(shù)和C語(yǔ)言中的printf函數(shù)一樣。
-
printf使用引用文本或由空格分隔的參數(shù)。
printf可使用格式化字符串,可以指定字符串的寬度、左右對(duì)其方式等。 - 不會(huì)自動(dòng)添加換行符,需要在需要的時(shí)候手動(dòng)添加
#!/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都是格式替代符,其所對(duì)應(yīng)的參數(shù)可以置于帶引號(hào)的格式字符串之后。 -
%-5s中-表示左對(duì)其,若不用-指定對(duì)其形式,則默認(rèn)使用右對(duì)其形式。數(shù)字指定了寬度。