O Bash pode ser avisado para desativar a expansão de chaves com set +B
, qual é o inverso de set -B
:
-B The shell will perform brace expansion (see Brace Expansion). This option is on by default.
Você também pode fornecer isso na linha de comando ao iniciar o shell:
$ bash +B -c 'echo {a,b,c}'
{a,b,c}
Você pode combinar isso com as --posix
ou set -o posix
options para se aproximar do comportamento totalmente POSIX. Você também precisa habilitar shopt -s xpg_echo
pelo menos.
Haverá outros cantos também - muitas das extensões estão profundamente arraigadas - e eu não acho que é possível fazer com que o Bash suporte apenas o comportamento que é realmente obrigatório pelo POSIX . Mesmo dash
não consegue isso.
No entanto, você pode encontrar dash
(o padrão /bin/sh
no Debian) mais útil se você estiver com o objetivo de evitar comportamentos estendidos, embora também ofereça suporte a algumas extensões. Também há o ash
applet do BusyBox , que também tem algumas extensões, mas muitas podem ser desabilitadas estaticamente.