こんにちは。itouです。
今回は、シェルスクリプト(bash)でのTIPSです。
下記のようにすることで
シェルスクリプトで、配列を関数に渡す、配列を関数より受け取ることができます。
配列を関数に渡す際のポイントは、「shift」というコマンドで引数を1つずつずらしている箇所です。
配列が格納された場所までずらして、最後「($@)」で変数に格納しています。
[code] #!/bin/sh function func () { local f_a=$1 shift local f_b=($@) local f_ret=() for f_c in ${f_b[@]} do f_ret+=($f_a-$f_c) done echo ${f_ret[@]} } # START # 関数funcに2と配列(3,2,5)を渡して、配列(2-3,2-2,2-5)を受け取り標準出力に表示 a=2 b=(3 2 5) ret=(`func ${a} ${b[@]}`) for c in ${ret[@]} do echo ${c} done [/code]
■実行結果
2-3
2-2
2-5