linux shell 中 printf 与 echo的区别
原文地址 :https://www.cnblogs.com/vagabond/p/4312047.html
echo
echo是非常常用的shell命令。參數如下:
- -e:打開反斜杠字符backslash-escaped的解析,即對/n,/t等字符進行解析,而不視之為兩個字符
- -E:關閉反斜杠字符的解析,/n作為兩個字符,這是系統缺省模式
- -n:刪除最后的換行
/a?: 發出警告鈴音(ALERT or CTRL-G (bell))?
/b?: 退格(BACKSPACE or CTRL-H )?
/c?: 刪除最后的字符及最后的換行(Omit final NEWLINE )?
/e?: 刪除后面的一個字符(Escape character (same as /E) )?
/E?: 同上(Escape character)?
/f?: 換頁符,在某些現實中會清屏,有些會換行(FORMFEED or CTRL-L )?
/n?: 換行(NEWLINE (not at end of command) or CTRL-J )?
/r?: 從行頭開始,和換行不一樣,仍在本行(RETURN (ENTER) or CTRL-M )?
/t?: tab鍵(TAB or CTRL-I )?
/v?: 豎直tab,和/f一樣,顯示不同機器有所不一樣,通常會引起換行VERTICAL TAB or CTRL-K?
/n?: 在cygwin中使用/65,無法正確顯示'A’但是下面兩種方法否可以顯示。ASCII character with octal (base-8) value n, where n is 1 to 3 digits?
/0nnn?: 用8進制的值表示一個字符,例如/0101,即65,表示字符’A’(The eight-bit character whose value is the octal (base-8) value nnn where nnn is 1 to 3 digits )?
/xHH?: 用16進制的值表示一個字符,例如/x41,即65,表示字符’A’The eight-bit character whose value is the hexadecimal (base-16) value HH (one or two digits)?
?
?
? ? ?printf
printf和C語言的使用方式類似。和echo不一樣,它不會在最后自動加上換行,需要寫入命令中。例如printf "Hello, world/n"。printf的命令格式如下:?
printf format-string [arguments]
?
%c:ASCII字符,如果參數給出字符串,則打印第一個字符?
%d:10進制整數?
%i:同%d?
%e:浮點格式([-]d.精度[+-]dd)?
%E:浮點格式([-]d.精度E[+-]dd)?
%f:浮點格式([-]ddd.precision)?
%g:%e或者%f的轉換,如果后尾為0,則刪除它們?
%G:%E或者%f的轉換,如果后尾為0,則刪除它們?
%o:8進制?
%s:字符串?
%u:非零正整數?
%x:十六進制?
%X:非零正數,16進制,使用A-F表示10-15?
%%:表示字符"%"
總結
以上是生活随笔為你收集整理的linux shell 中 printf 与 echo的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 管道命令和xargs的区别(经典解释)
- 下一篇: 【Bash百宝箱】shell内建命令之e