%sに.を追加しても数字が印刷されないのはなぜですか?

%sに.を追加しても数字が印刷されないのはなぜですか?

私はBashでコマンドを学びようとしていますが、これらの例を見つけました。を追加すると'.'シリアル番号が印刷されないのはなぜですか?

これは私が望む動作ですが、何も見つかりませんマニュアルページ

printf "%.sI" $(seq 10)

IIIIIIIIII

printf "%sI" $(seq 10)

1I2I3I4I5I6I7I8I9I10I

答え1

printf文字列にも適用される精度を指定できます。

関係者の声明printf(3) マンページ:

ピリオド('.')形式のオプションの精度と、その後にオプションで10進文字列が続きます。

精度が「.」で指定されている場合、または精度が負の場合、精度は0です。

これは、文字列から印刷する最大文字数sS変換を提供します。

したがって、printf '%.s'同様にprintf '%.0s'後続の文字列パラメータの出力を抑制します。

関連情報