シェルスクリプトで出力を自在に制御できるコマンドとしてprintf コマンドがあります。特に複雑な出力形式が必要な場合に重宝します。
本記事では、シェルスクリプトにおけるprintf コマンドの基本から応用までを詳しく解説します。
目次
printfコマンドの基本
printfコマンドは、指定されたフォーマットに従ってデータを整形して出力します。基本的な構文は次の通りです。
printf "フォーマット文字列" [引数...]
例えば、以下のように使用します。
#!/bin/bash
printf "Hello, World!\n"
このスクリプトは、printfコマンドを使って「Hello, World!」というメッセージを出力します。\nは改行文字で、出力の後に改行を追加します。
フォーマット指定子の使い方
printfコマンドでは、フォーマット指定子を使って出力の形式を指定できます。主なフォーマット指定子には以下のようなものがあります。
- %s – 文字列
- %d – 整数
- %f – 浮動小数点数
- %x – 16進数(小文字)
- %X – 16進数(大文字)
例えば、以下のように使うことができます。
#!/bin/bash
name="Taro"
age=30
height=175.72
printf "Name: %s\nAge: %d\nHeight: %.1f feet\n" "$name" "$age" "$height"
このスクリプトでは、%sが文字列、%dが整数、%.1fが小数点以下1桁の浮動小数点数を出力します。
数値のゼロ埋め
数値をゼロ埋めするためには、フォーマット指定子にゼロを使います。
#!/bin/bash
printf "%04d\n" 7
printf "%04d\n" 123
このスクリプトでは、%04dにより、整数が常に4桁でゼロ埋めされて表示されます。結果は0007と 0123 となります。
まとめ
printfコマンドは、シェルスクリプトにおける出力フォーマットを細かく制御できる強力なツールです。
フォーマット指定子を活用することで、出力を整形し、見やすく、かつ効果的に情報を伝えることができます。