Puncte:0

Verificare de sintaxă pentru scriptul bash, cu cod de eroare ca cod de ieșire de dragul SSH?

drapel cn

Vreau să automatizez câțiva pași de implementare. Au un server de CD, rulează pe Linux (în bash). Proiectul este apoi configurat să ruleze scriptul bash pe serverul de aplicații real pentru a realiza implementarea. SSH este folosit pentru a conecta de la CD Runner la serverul real.

Întreaga configurare se bazează pe presupunerea că implementarea eșuată este semnalată de un cod de ieșire corespunzător diferit de zero.

Doriți să adăugați un plus de siguranță, astfel încât erorile de sintaxă să oprească/eșueze implementarea devreme. Cu toate acestea, Bash în mod implicit nu respectă convenția codurilor de ieșire pentru erorile de sintaxă din script. O_O

Din păcate, „/bin/sh -n ...” NU va returna diferit de zero la eroarea de sintaxă.
A doua tehnică încercată, " $(/bin/sh -n ...) | wc -c | ... ", nu reușește deoarece nu poate găsi fișierul script. Sunt derutat de acea eroare. Este același fișier/aceeași comandă ca în prima tehnică.

Detalii de configurare:

  • CD runner rulând Linux și bash
  • server de aplicații care rulează Windows și OpenSSH și bash
  • deoarece cele două sunt instalări bash diferite, validarea trebuie să aibă loc în bash serverul de aplicații - deci prin SSH

Întrebare: Am ratat vreo variabilă opțiune/flag/env care îi va instrui pe Bash să folosească un cod de ieșire diferit de zero pentru erorile de sintaxă?
Sau: De ce invocarea /bin/sh înconjurătoare cu $() ar face să eșueze?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.