Вот код, который делает что-то другое в POSIX sh и Bash:
hello &> world
Является ли это "недействительным" для вас, я не знаю.
В Bash он перенаправляет как стандартный вывод, так и стандартную ошибку из helloфайла world. В POSIX shон работает helloв фоновом режиме, а затем выполняет пустое перенаправление в него world, обрезая его (т. Е. Он обрабатывается как & >).
Существует множество других случаев, когда расширения Bash будут выполнять свою функцию при запуске bashи будут иметь разные эффекты в чистом POSIX sh. Например, расширение скобки - это другое, и оно тоже работает в режиме POSIX Bash, а не так.
Что касается статических синтаксических ошибок, в Bash есть зарезервированные слова (например, [[и time), не указанные в POSIX, например, [[ xдопустимый код оболочки POSIX, но синтаксическая ошибка Bash, а также история различных ошибок несовместимости POSIX, которые могут привести к синтаксическим ошибкам, такой как тот из этого вопроса :
x=$(cat <<'EOF'
`
EOF
)
bash: line 2: unexpected EOF while looking for matching ``'
bash: line 5: syntax error: unexpected end of file
«Только синтаксические ошибки» - довольно опасное определение «недействительного» для любых обстоятельств, где это важно, но это так.