関数の戻り値を文字列で返す…。
ごく当たり前の処理だけど、シェルスクリプト(bash)では簡単に書けない。returnで返却できるのは0から255の整数値だけという制限があるからだ。
function hello { return 1 } hello echo $?
これを解決するためには、関数で標準出力しそれを変数へ格納する方法が有効。引数付きで関数を呼び出し、戻り値を変数に格納するサンプルが掲載されている。
makeName() { echo "$fileName.$1.log" } echo -n "Enter fileName:" read fileName name1=$(makeName "type1") name2=$(makeName "type2") echo $name1 echo $name2
その他、戻り値を格納する変数を渡し、関数側でevalして値を設定するというような方法も掲載されているが、とりあえず上の方法で十分そう。