shell腳本的字符串的輸出echo和printf


在所有的計算機語言學習中,輸入輸出都是最基本的學習內容。而巧用輸入輸出也會讓程序更靈活。shell腳本語言也是如此,應該說echo既有輸出功能,也有輸入的功能(重定向到文件)。printf應該只有輸出功能,但在格式化輸出方面有優勢。比如:

echo "hello"  "world"

echo "hello \n world ";echo "good"

echo -e "hello \n world \c"    # -e 開啟轉義 \c 不換行

echo "與上面連接"

echo -n "hello"

echo "world"

echo "hello world" >test_output.txt

#>>

hello world
hello \n world
good
hello
world 與上面連接
helloworld

通過查看以上shell腳本的輸出結果,最關鍵的要記住以下幾點:

1. 每條echo語句結束,既可以有分號";",也可以沒有。但如果想連續寫2條以上腳本需要分號

2.參數-e 是為了轉義字符串中的特殊字符,比如換行符"\n"。否則,換行符當做一般字符輸出

3.參數-n 是為了讓2條echo語句中間不換行,連接到一起輸出

4. >  是輸出重定向到文件。

對於變量內容的輸出,也是很簡單。但如果變量后面緊跟字符串,需要把變量用{}括起來表示邊界。例如:

var="helo world";echo $var

var1="pretty"

echo ${var}good

echo $var$var1 - $var1

#>>>

hello world
hello worldgood
hello worldpretty - pretty

對於printf的輸出功能,主要用於格式化。例如:

printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

#>>>

姓名   性別   體重kg
郭靖    男     66.12
楊過    男     48.65
郭芙   女      47.99

#%s %c %d %f 都是格式替代符,
%s 輸出一個字符串,
%d 整型輸出,
%c 輸出一個字符,
%f 輸出實數,以小數形式輸出。

此外,printf 與echo有一點非常不同,對於echo來說,語句結束之后,自動會換行。除非用其他轉義字符控制。

而printf默認是不換行的,而且printf中的字符串的換行符自動識別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM