確かに、printfの結果を変数に格納することが可能です。この場合、コマンド置換を利用します。以下にその方法を示します。
例
#!/bin/sh
pad_with_zero() {
num=$1
padded_num=$(printf "%02d" "$num")
echo $padded_num
}
# 変数に格納して使用する例
result=$(pad_with_zero 1)
echo "Formatted number: $result" # 出力: Formatted number: 01
result=$(pad_with_zero 2)
echo "Formatted number: $result" # 出力: Formatted number: 02
result=$(pad_with_zero 12)
echo "Formatted number: $result" # 出力: Formatted number: 12
説明
- 関数の定義と使用
pad_with_zero() {
num=$1
padded_num=$(printf "%02d" "$num")
echo $padded_num
}
pad_with_zero関数は、渡された引数numをprintfコマンドを使って2桁にフォーマットし、その結果をpadded_num変数に格納しています。echo $padded_numでフォーマットされた結果を出力しています。
- コマンド置換による結果の取得
result=$(pad_with_zero 1)
echo "Formatted number: $result"
result=$(pad_with_zero 1)とすることで、pad_with_zero関数の出力をresult変数に格納します。- その後、
echoコマンドで変数の内容を表示しています。
このように関数からの出力を変数に格納する方法を使うことで、フォーマットされた文字列を他の処理に利用することができます。

コメント