ShellCheck 0.9 hè dispunibule, un analizatore staticu per script di shell

A liberazione di u prughjettu ShellCheck 0.9 hè stata publicata, sviluppatu un sistema per l'analisi statica di script di shell chì sustene l'identificazione di l'errori in scripts tenendu in contu e caratteristiche di bash, sh, ksh è dash. U codice di u prughjettu hè scrittu in Haskell è distribuitu sottu a licenza GPLv3. I cumpunenti sò furniti per l'integrazione cù Vim, Emacs, VSCode, Sublime, Atom, è diversi frameworks chì supportanu u rapportu di errore GCC-compatibile.

ShellCheck 0.9 hè dispunibule, un analizatore staticu per script di shell

Supporta l'identificazione di l'errore di sintassi in u codice, chì portanu à l'interprete chì mostra un errore à u mumentu di l'esekzione, è i prublemi semantichi, per via di quale l'esekzione ùn hè micca disturbata, ma anomalie in u cumpurtamentu di u script. L'analizzatore pò ancu identificà colli di bottiglia, prublemi micca evidenti è trappule chì ponu purtà à fallimenti in certe circustanze.

Trà e classi di l'errori rilevati, pudemu nutà prublemi cù fughje caratteri speciali è framing in quotes, errori in espressioni cundiziunali, usu incorrecte di cumandamenti, prublemi di trasfurmazioni di tempu è date, è errori di sintassi tipici per i principianti. Per esempiu, l'absenza di spazii quandu paragunate "[[ $foo==0 ]]", a prisenza di spazii "var = 42" o l'indicazione di u simbulu $ quandu assignate "$foo==42", l'usu di variàbili senza virgolette "echo $1", l'indicazione di parentesi quadrate extra in "tr -cd '[a-zA-Z0-9]'",

Inoltre, sustene l'output di cunsiglii per migliurà u stilu di codice, eliminendu i prublemi di portabilità, è aumentendu l'affidabilità di i script. Per esempiu, invece di "echo $[1+2]" serà suggeritu d'utilizà a sintassi "$((..))", a custruzzione 'rm -rf "$STEAMROOT/"*' serà marcata cum'è micca sicura. è capaci di sguassà u cartulare radicali se a variàbile ùn hè micca pienu $STEAMROOT, è l'usu di "echo {1..10}" serà evidenziatu cum'è incompatibile cù dash è sh.

In a nova versione:

  • Avvisu aghjustatu per espressioni cum'è "foo locale di sola lettura".
  • Avvisu aghjuntu annantu à i cumandamenti indisponibili.
  • Avvisu aghjustatu nantu à i backlinks à "dichjarà x=1 y=$x".
  • Avvisu aghjuntu se $? utilizatu per stampà u codice di ritornu di echo, printf, [ ], [[ ]] è test.
  • Raccomandazione aghjunta per sguassà ((..))inarray[((idx))]=val.
  • Aggiunta una raccomandazione per a concatenazione di parentesi doppie in cuntesti aritmetici.
  • Aggiunta una ricunniscenza per sguassà i parentesi in l'espressione a[(x+1)]=val.

Source: opennet.ru

Add a comment