Aqui está um código que faz algo diferente no POSIX sh e Bash:
hello &> world
Se isso é "inválido" para você, não sei.
Em Bash, ele redireciona ambos saída padrão e erro padrão a partir hellopara o arquivo world. No POSIX sh, ele é executado helloem segundo plano e, em seguida, faz um redirecionamento vazio para world, truncando-o (ou seja, é tratado como & >).
Existem muitos outros casos em que as extensões Bash funcionam quando executadas em baixo bashe têm efeitos diferentes em um POSIX puro sh. Por exemplo, a expansão de chaves é outra, e também opera da mesma forma no modo POSIX do Bash e não.
No que diz respeito aos erros estáticos de sintaxe, o Bash possui as duas palavras reservadas (como [[e time) não especificadas pelo POSIX, como [[ xum código de shell POSIX válido, mas um erro de sintaxe do Bash e um histórico de vários erros de incompatibilidade do POSIX que podem resultar em erros de sintaxe, como o desta pergunta :
x=$(cat <<'EOF'
`
EOF
)
bash: line 2: unexpected EOF while looking for matching ``'
bash: line 5: syntax error: unexpected end of file
Somente erros de sintaxe é uma definição bastante perigosa de "inválido" para qualquer circunstância em que isso importe, mas aí está.