ShellCheck 0.9 er fáanlegt, kyrrstöðugreiningartæki fyrir skeljaforskriftir

Útgáfa ShellCheck 0.9 verkefnisins hefur verið gefin út, þróa kerfi fyrir kyrrstöðugreiningu skeljaforskrifta sem styður auðkenningu á villum í forskriftum með hliðsjón af eiginleikum bash, sh, ksh og dash. Verkefniskóðinn er skrifaður í Haskell og dreift undir GPLv3 leyfinu. Íhlutir eru fyrir samþættingu við Vim, Emacs, VSCode, Sublime, Atom og ýmsa ramma sem styðja GCC-samhæfa villuskýrslu.

ShellCheck 0.9 er fáanlegt, kyrrstöðugreiningartæki fyrir skeljaforskriftir

Það styður að bera kennsl á bæði setningafræðivillur í kóðanum, sem leiða til þess að túlkurinn sýnir villu við keyrslu, og merkingarvandamál, sem veldur því að framkvæmd truflast ekki, heldur koma fram frávik í hegðun handritsins. Greiningartækið getur einnig greint flöskuhálsa, óljós vandamál og gildrur sem geta leitt til bilana undir ákveðnum kringumstæðum.

Meðal flokka uppgötvaðra villna getum við tekið eftir vandamálum við að sleppa sértáknum og ramma þá inn í gæsalappir, villur í skilyrtum tjáningum, rangri notkun skipana, vandamál við að vinna úr tíma og dagsetningum og dæmigerðar setningafræðivillur fyrir byrjendur. Til dæmis, skortur á bilum þegar borið er saman „[[ $foo==0 ]]“, tilvist bils „var = 42“ eða vísbendingin um $ táknið þegar „$foo=42“ er úthlutað, notkun breyta án gæsalappa „echo $1“, vísbendingin um auka hornklofa í „tr -cd '[a-zA-Z0-9]'",

Að auki styður það framleiðsla ráðlegginga um að bæta kóðastíl, útrýma flutningsvandamálum og auka áreiðanleika forskrifta. Til dæmis, í stað „echo $[1+2]“ verður lagt til að nota setningafræði „$((..))“, smíðin 'rm -rf „$STEAMROOT/“*' verður merkt sem óörugg og fær um að eyða rótarskránni ef breytan er ekki fyllt $STEAMROOT, og notkun "echo {1..10}" verður auðkennd sem ósamrýmanleg strik og sh.

Í nýju útgáfunni:

  • Bætt við viðvörun fyrir orðasambönd eins og „staðbundið skrifvarið foo“.
  • Bætt við viðvörun um ótiltækar skipanir.
  • Bætt við viðvörun um baktengla til að „lýsa yfir x=1 y=$x“.
  • Bætt við viðvörun ef $? notað til að prenta út skilakóðann fyrir echo, printf, [ ], [[ ]] og próf.
  • Bætt við tilmælum um að fjarlægja ((..))inarray[((idx))]=val.
  • Bætti við tilmælum um að tengja tvöfaldan sviga í reikningssamhengi.
  • Bætti við tilmælum um að fjarlægja sviga í tjáningunni a[(x+1)]=val.

Heimild: opennet.ru

Bæta við athugasemd