最近 Python とか Makefile とか弄ってるせいで bash の代入式が見るに耐えなくなってしまったのでなんとかならないもんかと考えてみた。もうどっかにあるかもしれないけど。せ、セミコロン使ったら一行だよ…。 define(){ eval ${1:?}=\"\${*\:2}\"; } array (){ eval ${1:?}=\(\"\${@\:2}\"\); } #!/usr/bin/env - /bin/sh define(){ eval ${1:?}=\"\${*\:2}\"; }; array(){ eval ${1:?}=\(\"\${@\:2}\"\); } ### とりあえず何か代入してみるテスト ### define str0 # null define str1 foo define str2 foo bar $' \t\n!?*@{}()<>#\\' de