揮発性のメモ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の使用そのものをやめよう