printf — 形式化された出力を書き出す

形式

printf format [argument …]

説明

printf は、argument オペランドを format オペランドに従ってフォーマットして標準出力に書き出します。

format は書式ストリングです。これは、次の argument を出力に変換または追加するための 変換仕様によって構成されます。format には、円記号エスケープ・シーケンスを含めることができます。これらの変換は、ANSI C 標準で使用されるものと類似しています。変換仕様の形式は、以下のとおりです。
%[flag][width]
[precision][char]
ここで flag は、以下のいずれかです。
-
フィールドを左寄せにします。デフォルトは右寄せです。
+
常に、前に符号 (+ または -) を付けます。
スペース
ストリングの先頭に 1 桁の文字位置を確保します。これは、負符号用 (負数の場合) またはスペース用 (正数の場合) です。フラグとして space および - の 両方があった場合、space フラグは無視されます。
#
8 進値の前に 0 を付け、16 進値の前に 0x または 0X を付けます。浮動小数点値の場合、小数点が必ず表示されるようになり ます (その後に続く文字がない場合も同じです)。
0
数値に先行ゼロを埋め込みます。フラグとして 0 および - の両方があった 場合、0 フラグは無視されます。

width は、出力フィールドの最小フィールド幅です。変換された値が最小幅より短い場合、printf はそれをスペースまたはゼロで埋めます。

ストリングの場合、precision はストリングから印刷する バイトの最大数です。数の場合、精度は 浮動小数点に対して小数点の右側に印刷する 数字の桁数です。width または precision は、* として指定することができます。その場合、値は次の引数から読み取られます。これは整数でなければなりません。例えば、
printf "%*.*d¥n" 20 10 200
は、以下と同等です。
printf "%20.10d¥n" 200
変換文字 char は、以下のいずれかです。
b
円記号エスケープ・シーケンスを含むストリング。
c
整数値の単一文字。ストリングの先頭文字。
d
10 進整数。
e,E
浮動小数点 (科学計算表記)。
f,F
浮動小数点。
g,G
e および f の短縮形 (無意味なゼロを抑制する)。
i
10 進整数。
o
符号なしの 8 進整数。
s
ストリング。
u
符号なしの 10 進整数。
x,X
符号なしの 16 進整数。

format 内の位置よりも多くの引数がある場合、残りの引数に対して、もう一度 format ストリングが 適用されます。format ストリング内の位置よりも引数が少ない場合 は、printf は残りの位置をヌル・ストリング (文字 フィールド) またはゼロ (数値フィールド) で埋めます。

注意

POSIX.2POSIX.2 printf 機能は (その基礎に なっている C 言語の printf() のよう に)、%c 変換、あるいは精度を指定した %b また は %s を使用した場合、2 バイト文字をうまく処理できません。文字セット内に 2 バイト文字がある場合、これらの機能は注意して使用してください。

2 バイト環境では、通常の円記号エスケープ文字は正しく処理さ れ (要求された 通り printf シフト状態で) ますが、8 進数および 16 進数エスケープ文字 は状態を変更しません。この動作は、シフト・ロック環境の場合に重要です。例えば、8 進エスケープ文字にシフトイン文字が含まれている場合、シフトアウト文字もあることを確認するのは、ユーザーの責任になります。円記号さらに、2 バイト文字の直後に来た 8 進または 16 進の 円記号エスケープ文字は、シフト状態では処理されない場 合があります。

2 バイト文字環境の詳細は、2 バイト文字セット (DBCS) の使用を参照してください。

ローカライズ

printf は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • LC_NUMERIC
  • LC_SYNTAX
  • NLSPATH

詳細については、ローカライズを参照してください。

終了値

0
正常終了
>0
以下のいずれかによる失敗の数値。
  • 書式指定が欠落している
  • format ストリングが受け付けない引数 (すなわち、% がない) が 指定された
  • 整数引数が正しくない
  • 浮動小数点引数が正しくない

移植性

POSIX.2, X/Open 移植性ガイド, UNIX System V.

%F 書式、および * を幅または精度として 取り扱うことは、POSIX 標準の拡張です。

関連情報

echo, print