こんにちは。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

