Bash のコマンドを学習しようとしていて、これらの例に遭遇しました。 を追加すると、'.'
シーケンス番号が印刷されなくなるのはなぜですか?
これは私が望んでいる動作ですが、マニュアルページ。
printf "%.sI" $(seq 10)
IIIIIIIIII
printf "%sI" $(seq 10)
1I2I3I4I5I6I7I8I9I10I
答え1
printf
文字列にも適用可能な精度を指定できます。
関連する声明printf(3) マニュアルページ:
オプションの精度。ピリオド ('.') の後にオプションの 10 進数字文字列が続きます。
精度が単に「.」として指定されている場合、または精度が負の場合、精度はゼロと見なされます。
s
これにより、変換時に文字列から印刷される最大文字数が示されますS
。
はprintf '%.s'
と同等でありprintf '%.0s'
、後続の文字列パラメータからの出力を抑制します。