揮発性のメモ2

知識をメモ書きしておく

eval

bashには連想配列がないので、変数に入っている名前の変数に代入してみる。

    key=hoge
    value=aaa

    eval $key="$value"

これは hoge=aaaと同じ結果になる。
key側について、変な変数を上書きするのも怖いので、制限をつけてみる。

    case "$key" in
      hoge|piyo|fuga)
        eval $key="$value"
        ;;
    esac

value側についても、なんらかのサニタイズのようなことをする必要があるが 非常に面倒なので、原理的にコマンドインジェクションが発生しない方法が見つかるまでevalの使用そのものをやめよう