zsh で実行すると、次のようになります。
a=$(echo "foo, bar")
echo ${a[(ws:, :)1]}
私はfoo
あなたが期待するように取得します(w
インデックスが単語を参照s:, :
する,
ようになり、単語の区切りになります)。
ただし、これらを組み合わせようとすると:
echo ${$(echo "foo, bar")[(ws:, :)1]}
私は得るfoo,
。何らかの理由で、w
フラグは正しく機能していますが、s:, :
フラグは完全に無視されています。
ここで何が間違っていますか?
詳細:これは ${} 内の $() の問題です。${} 内に ${} をネストしても、そのような問題はありません。
$ zsh --version
zsh 5.2 (x86_64-unknown-linux-gnu)