ShellCheck 0.9 ass verfügbar, e statesche Analysator fir Shell Scripten

D'Verëffentlechung vum ShellCheck 0.9-Projet gouf publizéiert, e System fir statesch Analyse vu Shell-Skripte z'entwéckelen, déi d'Identifikatioun vu Feeler an de Skripte ënnerstëtzt andeems d'Features vu bash, sh, ksh a dash berécksiichtegt. De Projet Code ass an Haskell geschriwwen an ënner der GPLv3 Lizenz verdeelt. Komponente gi fir Integratioun mat Vim, Emacs, VSCode, Sublime, Atom, a verschidde Kaderen zur Verfügung gestallt, déi GCC-kompatibel Fehlerberichterstattung ënnerstëtzen.

ShellCheck 0.9 ass verfügbar, e statesche Analysator fir Shell Scripten

Et ënnerstëtzt d'Identifikatioun vu Syntaxfehler am Code, déi dozou féieren datt den Dolmetscher e Feeler beim Ausféierung weist, a semantesch Probleemer, wéinst deenen d'Ausféierung net gestéiert gëtt, awer Anomalien am Verhalen vum Skript optrieden. Den Analyser kann och Flaschenhals identifizéieren, net offensichtlech Probleemer a Fallfäegkeeten, déi ënner bestëmmten Ëmstänn zu Feeler féieren.

Ënnert de Klassen vun detektéierte Feeler kënne mir Problemer mat der Flucht vu speziellen Zeechen notéieren an se an Zitaten z'cadréieren, Feeler an bedingungslosen Ausdréck, falsch Notzung vu Kommandoen, Probleemer mat der Veraarbechtung vun Zäit an Datumen, an typesch Syntaxfehler fir Ufänger. Zum Beispill d'Feele vu Plazen wann Dir "[[ $foo===0 ]]" vergläicht, d'Präsenz vu Plazen "var = 42" oder d'Indikatioun vum $ Symbol wann Dir "$foo=42" zougewisen, d'Benotzung vu Variablen ouni Zitater "Echo $1", d'Indikatioun vun extra eckeg Klammern an "tr -cd '[a-zA-Z0-9]'",

Zousätzlech ënnerstëtzt et d'Ausgab vu Empfehlungen fir de Codestil ze verbesseren, d'Portabilitéitsprobleemer ze eliminéieren an d'Zouverlässegkeet vun de Skripte ze erhéijen. Zum Beispill, amplaz "Echo $[1+2]" gëtt proposéiert d'Syntax "$((..))" ze benotzen, d'Konstruktioun 'rm -rf "$STEAMROOT/"*' gëtt als onsécher markéiert. a kapabel fir de Root-Verzeichnis ze läschen wann d'Variabel net gefëllt ass $STEAMROOT, an d'Benotzung vun "Echo {1..10}" gëtt als inkompatibel mat Dash a sh markéiert.

An der neier Versioun:

  • Zousätzlech Warnung fir Ausdréck wéi 'lokal readonly foo'.
  • Zousätzlech Warnung iwwer net verfügbar Kommandoen.
  • Zousätzlech Warnung iwwer Backlinks fir 'x=1 y=$x deklaréieren'.
  • Zousätzlech Warnung wann $? benotzt fir de Retourcode vun Echo, printf, [], [[]] an Test ze drécken.
  • Zousätzlech Empfehlung fir ze läschen ((..))inarray[((idx))]=val.
  • Eng Empfehlung bäigefüügt fir duebel parentheses an arithmetesche Kontexter ze verbannen.
  • Eng Empfehlung bäigefüügt fir Klammeren am Ausdrock a[(x+1)]=val ze läschen.

Source: opennet.ru

Setzt e Commentaire