Как проверить синтаксис переносимых сценариев оболочки POSIX? [Дубликат]
На этот вопрос уже есть ответ здесь:
Как проверить синтаксис скрипта Bash без его запуска? 7 ответовСледующий сценарий оболочки хорошо работает при условии/bin/true
для первого аргумента, но в противном случае может потерпеть неудачу ссинтаксическая ошибка во время выполнения!
#!/bin/sh
if $1 ; then exit; fi
/tmp/asdf <<< ASDF # Something with syntax error in POSIX
Наверняка некоторых статических ошибок (если не всех?) Можно избежать статической проверкой?Как мне статически проверить, является ли данныйЯзык командной оболочки скрипт синтаксически действителен?
РЕДАКТИРОВАТЬ: Проверка на синтаксические ошибки в скриптах Bash дана в ответеэтот вопрос.
РЕДАКТИРОВАТЬ № 2: Обратите внимание, чтоБаш не удается правильно проверить, соответствует ли синтаксис POSIX, даже когда выполняется с+B
а также--posix
флаги в дополнение к-n
.