ShellCheck 0.9 is beskikber, in statyske analysator foar shell-skripts

De frijlitting fan it ShellCheck 0.9-projekt is publisearre, it ûntwikkeljen fan in systeem foar statyske analyze fan shell-skripts dy't stipet identifisearjen fan flaters yn skripts mei rekken hâldend mei de funksjes fan bash, sh, ksh en dash. De projektkoade is skreaun yn Haskell en ferspraat ûnder de GPLv3-lisinsje. Komponinten wurde levere foar yntegraasje mei Vim, Emacs, VSCode, Sublime, Atom, en ferskate kaders dy't GCC-kompatibele flaterrapportaazje stypje.

ShellCheck 0.9 is beskikber, in statyske analysator foar shell-skripts

It stipet it identifisearjen fan sawol syntaksisflaters yn 'e koade, dy't liede ta de tolk dy't in flater werjaan op it momint fan útfiering, en semantyske problemen, wêrtroch't de útfiering net fersteurd wurdt, mar anomalies yn it gedrach fan it skript foarkomme. De analysator kin ek knelpunten, net-foar de hân lizzende problemen en falkûlen identifisearje dy't kinne liede ta mislearrings ûnder bepaalde omstannichheden.

Under de klassen fan ûntdutsen flaters kinne wy ​​​​opmerke problemen mei it ûntsnappen fan spesjale tekens en framing se yn quotes, flaters yn betingsten útdrukkings, ferkeard gebrûk fan kommando's, problemen ferwurkjen tiid en datums, en typyske syntaksis flaters foar begjinners. Bygelyks it ûntbrekken fan spaasjes by it fergelykjen fan "[[ $foo===0 ]]", de oanwêzigens fan spaasjes "var = 42" of de oantsjutting fan it symboal $ by it tawizen fan "$foo=42", it brûken fan fariabelen sûnder oanhalingstekens "echo $1", de oantsjutting fan ekstra fjouwerkante heakjes yn "tr -cd '[a-zA-Z0-9]'",

Derneist stipet it de útfier fan oanbefellings foar it ferbetterjen fan koadestyl, it eliminearjen fan portabiliteitsproblemen en it fergrutsjen fan de betrouberens fan skripts. Bygelyks, ynstee fan "echo $[1+2]" sil foarsteld wurde om de syntaksis "$((..))" te brûken, de konstruksje 'rm -rf "$STEAMROOT/"*' sil markearre wurde as ûnfeilich en by steat fan it wiskjen fan de woartel triemtafel as de fariabele is net ynfolle $ STEAMROOT, en it brûken fan "echo {1..10}" sil markearre wurde as ynkompatibel mei dash en sh.

Yn de nije ferzje:

  • Warskôging tafoege foar útdrukkingen lykas 'lokale readonly foo'.
  • Warskôging tafoege oer net-beskikbere kommando's.
  • Warskôging tafoege oer backlinks oan 'ferklearje x=1 y=$x'.
  • Added warskôging as $? brûkt om de weromkommende koade fan echo, printf, [ ], [[ ]] en test te printsjen.
  • Oanbefelling tafoege om ((..))inarray[((idx))]=val te ferwiderjen.
  • In oanbefelling tafoege foar it gearfoegjen fan dûbele heakjes yn rekenkundige konteksten.
  • In oanbefelling tafoege om heakjes te ferwiderjen yn 'e útdrukking a[(x+1)]=val.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster