シェルスクリプトでsprintfのようなことをする

僕はシェルスクリプトを触ったことがほぼないのですが、C言語でいうsprintfのようなことをしたくて手間取ったのでメモです。シェルはbashです。

シェルスクリプトでprintfのようなことをするにはprintfコマンドを使って下記のようにします。

value=1
printf "aaa%03d\n" $value

今回は整形済みの結果を変数に代入したかったので、sprintfのようなものはないのかと思って探しました。結果的には、下記のようにしてprintfコマンドの結果を代入することでsprintfのようなことができました。

value=1
result=$(printf "aaa%03d" $value)

シェルスクリプトの文法を知っていれば当たり前なのでしょうが、「シェルスクリプト sprintf」などのキーワードからこの書き方を検索するのが結構大変だったので。