はわわーっ

はわわわわっ

bashで関数に配列をわたす

eval 使うと簡単にできそうだったのでちょっとやってみた。

#/bin/bash

function do_something_array() {
  eval local -a array=$1
  echo "(${array[@]})"
}

do_something_array "(hoge fuga piyo)"

array=(hoge fuga piyo)
do_something_array "(${array[*]})"

配列の変数を展開するときに

do_something_array "(${array[*]})"

だと大丈夫なんだけど

do_something_array "(${array[@]})"

にすると eval するときに ) が見つからないっていうエラーがでるんだけどなんでだろう。