zsh - localで配列を宣言するときは代入を同時にしてはいけないっぽい
zshで少しハマったことのメモです。
環境
/Users/kanno% zsh --version zsh 5.0.5 (x86_64-apple-darwin13.0.0)
zshの配列について
こちらの記事が参考になります。
ハマったこと
まずはグローバルな変数宣言で試す
/Users/kanno% () { ary=(1 2); echo $ary } 1 2
これはよし。
なお上記の書き方は無名関数の即時実行です。
変数をローカル宣言にする
/Users/kanno% () { local -a ary=(1 2); echo $ary } (anon): unknown file attribute
!?
値を文字列にしてみる
/Users/kanno% () { local -a ary=(a b); echo $ary } (anon): number expected
!?!?
解決
宣言と代入は分ける
/Users/kanno% () { local -a ary; ary=(1 2); echo $ary } 1 2 /Users/kanno% () { local -a ary; ary=(a b); echo $ary } a b
原因
わかりません