Echo
printf over echo 有什麼特別之處
我發現一個變數的長度如下:
`set num=123456` `echo $num|wc -c`
它返回輸出為 7(假設返回 6)
我做了同樣的事情
printf
`printf "%s" $num|wc -c`
它返回輸出為 6 (如預期的那樣)
計數時是否
echo
考慮空字元?Printf
計數到空字元?有什麼特別之處
printf
?
看到這一點的最簡單方法是使用類似
od -c
列印所有字元的東西:$ echo 123456 | od -c 0000000 1 2 3 4 5 6 \n 0000007 $ printf 123456 | od -c 0000000 1 2 3 4 5 6 0000006
正如你所看到的,
echo
列印一個額外的\n
但printf
沒有。wc -c
計算字節數,它不關心所討論的字元是否可以被人類看到,它只計算其輸入中的字節數。
printf
至於vs有什麼特別之處echo
,請參閱此處了解比您想知道的更多詳細資訊。