今天要來比較一下echo與printf,
同樣都會印出文字,那差別在哪呢?
我們直接實際操作來看看看。
首先先來試試echo,
下指令echo "Hello"
按下enter就會印出
Hello
這邊用畫面的樣式,顯示的清楚點
user@machineName:~$ echo "Hello"
Hello
user@machineName:~$
接著再來試試printf,
下指令printf "Hello"
按下enter也會印出
Hello
這邊同樣用畫面的樣式顯示,
user@machineName:~$ printf "Hello"
Hellouser@machineName:~$
發現到使用echo印出文字會自動換行,
而使用printf並不會換行。
那若是要用printf將文字寫進名為「檔案1.txt」的檔案裡面呢?
概念和echo是一樣的,
下指令printf "Hello" > 檔案.txt
,
再下指令printf " World" >> 檔案.txt
,
這邊記得World前要放空格,
否則HelloWorld會連在一起,
接著我們來看看檔案.txt內容,
下指令cat 檔案.txt
,
這邊用畫面的樣式顯示,
user@machineName:~$ cat 檔案.txt
Hello Worlduser@machineName:~$
結果輸出Hello World,
可是這樣不好看耶,
想換行該怎麼做呢?
那就在給他一個斷行符號(\n)即可,
下指令printf "\n" >> 檔案.txt
,
接著再試試來看檔案.txt內容,
下指令cat 檔案.txt
,
這邊用畫面的樣式顯示,
user@machineName:~$ cat 檔案.txt
Hello World
user@machineName:~$
就會順利斷行了。
輸出時沒有斷行符號(\n)會造成畫面顯示上的困擾,
尤其是在紀錄一些log時,
若是沒有斷行,
對於開發者來說閱讀起來會變得相當辛苦呢。