shell的格式化輸出命令printf

2022-08-28 13:57:23 字數 1392 閱讀 4841

printf 命令用於格式化輸出, 是echo命令的增強版。它是c語言printf()庫函式的乙個有限的變形,並且在語法上有些不同。

注意:printf 由 posix 標準所定義,移植性要比 echo 好。

如同 echo 命令,printf 命令也可以輸出簡單的字串:

$printf

"hello, shell\n"

hello, shell

$printf 不像 echo 那樣會自動換行,必須顯式新增換行符(\n)。

printf 命令的語法:

printf  format-string  [arguments...]
format-string 為格式控制字串,arguments 為引數列表。

printf()在c語言入門教程中已經講到,功能和用法與 printf 命令類似,請檢視:

c語言格式輸出函式printf()詳解

這裡僅說明與c語言printf()函式的不同:

請看下面的例子:

純文字

複製

# format-string為雙引號

$ printf

"%d %s\n"

1"abc"

1 abc

# 單引號與雙引號效果一樣

$ printf

'%d %s\n'

1"abc"

1 abc

# 沒有引號也可以輸出

$ printf

%s abcdef

abcdef

# 格式只指定了乙個引數,但多出的引數仍然會按照該格式輸出,format-string 被重用

$ printf

%s abc def

abcdef

$ printf

"%s\n

" abc def

abcdef

$ printf

"%s %s %s

\n" a b c d e f g h i j

a b c

d e f

g h i

j# 如果沒有 arguments,那麼 %s 用null代替,%d 用 0 代替

$ printf

"%s and %d \n"

and 0

# 如果以 %d 的格式來顯示字串,那麼會有警告,提示無效的數字,此時預設置為 0

$ printf

"the first program always prints'%s,%d

\n'" hello shell

-bash

:printf

: shell: invalid number

the first program always prints 'hello,0'

$

shell格式化輸出

1 使用echo進行格式化輸出 2 使用printf進行格式化輸出 1 使用echo進行格式化輸出 顯示轉義字元 root yanta echo this is a test this is a test 12 讀取變數並顯示 使用 read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給...

shell格式化輸出

一 echo 命令介紹 功能 將內容輸出到預設顯示裝置 echo命令的功能是在顯示器上顯示一段文字,一般起到乙個提示的作用。功能說明 顯示文字。語法 echo ne 字串 補充說明 echo會將輸入的字串送往標準輸出。輸出的字串間以空白字元隔開,並在 最後加上換行號。命令選項 n不要在最後自動換行 ...

Shell的格式化輸出

root yanta echo this is a test this is a test 使用read命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數 bin bash name home yanta read echo.sh author yanta dsc this ...