asadasd

確かに、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

説明

  1. 関数の定義と使用
   pad_with_zero() {
     num=$1
     padded_num=$(printf "%02d" "$num")
     echo $padded_num
   }
  • pad_with_zero 関数は、渡された引数numprintfコマンドを使って2桁にフォーマットし、その結果をpadded_num変数に格納しています。
  • echo $padded_num でフォーマットされた結果を出力しています。
  1. コマンド置換による結果の取得
   result=$(pad_with_zero 1)
   echo "Formatted number: $result"
  • result=$(pad_with_zero 1) とすることで、pad_with_zero関数の出力をresult変数に格納します。
  • その後、echo コマンドで変数の内容を表示しています。

このように関数からの出力を変数に格納する方法を使うことで、フォーマットされた文字列を他の処理に利用することができます。

コメント

タイトルとURLをコピーしました