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.
'