Рейтинг:0

Проверка синтаксиса для сценария bash с кодом ошибки в качестве кода выхода для SSH?

флаг cn

Я хочу автоматизировать некоторые этапы развертывания. Есть CD-сервер, он работает на Linux (в bash). Затем проект настраивается для запуска сценария bash на реальном сервере приложений для выполнения развертывания. SSH используется для подключения CD-проигрывателя к реальному серверу.

Вся установка основывается на предположении, что неудачное развертывание сигнализируется соответствующим ненулевым кодом выхода.

Хотите добавить дополнительную безопасность, чтобы синтаксические ошибки останавливали/сбой развертывания раньше. Однако Bash по умолчанию не придерживается соглашения о кодах выхода для синтаксических ошибок в сценарии. О_О

К сожалению, "/bin/sh -n..." НЕ возвращает ненулевое значение при синтаксической ошибке.
Второй испробованный метод, " $(/bin/sh -n ...) | wc -c | ... ", терпит неудачу, поскольку не может найти файл сценария. Я сбит с толку этой ошибкой. Это тот же файл/та же команда, что и в первом методе.

Детали настройки:

  • CD бегун под управлением Linux и bash
  • сервер приложений под управлением Windows, OpenSSH и bash
  • поскольку эти две установки bash разные, проверка должна выполняться на сервере приложений bash, поэтому через SSH

Вопрос: Я пропустил какую-либо переменную option/flag/env, которая будет указывать Bash использовать ненулевой код выхода для синтаксических ошибок?
Или: почему окружение рабочего вызова /bin/sh с помощью $() может привести к сбою?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.