if type emulate >/dev/null 2>/dev/null; then emulate ksh; fi
No zsh, isso ativa opções que o tornam mais compatível com o ksh e o bash, incluindo sh_word_split . Em outros shells, emulate não existe, então isso não faz nada.
Gostaria de converter este loop de Bash:
x="one two three"
for i in ${x}
do
echo ${i}
done
de maneira a trabalhar tanto com o Bash quanto com o zsh
Esta solução funciona:
x=( one two three )
for i in ${x[@]}
do
echo ${i}
done
De qualquer forma, estou modificando x de uma string para uma matriz.
Existe uma maneira de fazer o loop de $x em zsh quando é uma string e de uma maneira compatível com o Bash?
Eu sei sobre o zsh setopt shwordsplit para emular o Bash, mas não posso configurá-lo ad hoc para o loop, porque ele não funcionaria no Bash.
'