ĂshtĂ« publikuar edicioni i projektit ShellCheck 0.9, i cili zhvillon njĂ« sistem tĂ« analizĂ«s statike pĂ«r skriptet shell, duke mbĂ«shtetur identifikimin e gabimeve nĂ« skripte nĂ« pĂ«rputhje me karakteristikat e bash, sh, ksh dhe dash. Kodi i projektit Ă«shtĂ« shkruar nĂ« Haskell dhe shpĂ«rndahet nĂ«n licencĂ«n GPLv3. Ofron komponente pĂ«r integrim me Vim, Emacs, VSCode, Sublime, Atom dhe mjedise tĂ« ndryshme tĂ« integruara qĂ« mbĂ«shtesin informacione pĂ«r gabimet tĂ« pĂ«rshtatshme pĂ«r GCC.

Mbështetet identifikimi në kod si i gabimeve sintaksore, të cilat çojnë në nxjerrjen e një gabimi nga interpretuese në momentin e ekzekutimit, ashtu edhe i problemeve semantike, për të cilat ekzekutimi nuk ndërpritet, por ndodhin anomali në sjelljen e skriptit. Analizatori gjithashtu mund të identifikojë pika të dobëta, probleme të padukshme dhe pengesa që mund të çojnë në dështime në rast të ndodhisë të caktuar.
Nga klasat e gabimeve tĂ« identifikueshme, mund tĂ« pĂ«rmendim problemet me ekranuar simbolikĂ«ve specialĂ« dhe mbylljen nĂ« thonjĂ«za, gabime nĂ« shprehjet kushtore, pĂ«rdorim tĂ« gabuar tĂ« komandave, probleme nĂ« pĂ«rpunimin e kohĂ«s dhe datave, dhe gabime tipike sintaksore tĂ« fillestarĂ«ve. PĂ«r shembull, mungesa e hapĂ«sirave gjatĂ« krahasimit â[[ $foo==0 ]]â, prania e hapĂ«sirave âvar = 42â ose caktimi i simbolit $ gjatĂ« atribuimit â$foo=42â, pĂ«rdorimi i variablave pa thonjĂ«za âecho $1â, caktimi i skedave tĂ« tepĂ«rta nĂ« âtr -cd â[a-zA-Z0-9]â,
PĂ«r mĂ« tepĂ«r, mbĂ«shtetet ofrimi i rekomandimeve pĂ«r pĂ«rmirĂ«simin e stilit tĂ« kodit, riparimin e problemeve me portabilitetin dhe rritjen e besueshmĂ«risĂ« sĂ« ekzekutimit tĂ« skripteve. PĂ«r shembull, nĂ« vend tĂ« âecho $[1+2]â do tĂ« sugjerohet tĂ« pĂ«rdoret sintaksa â$((..))â, konstrukti ârm -rf "$STEAMROOT/"*â do tĂ« shĂ«nohet si i pasigurt dhe i aftĂ« pĂ«r tĂ« fshirĂ« katalogun kryesor nĂ«se variabla $STEAMROOT nuk Ă«shtĂ« e mbushur, ndĂ«rsa pĂ«rdorimi i âecho {1..10}â do tĂ« theksohet si jo e pĂ«rputhshme me dash dhe sh.
NĂ« versionin e ri:
- Shtuar njĂ« paralajmĂ«rim pĂ«r shprehjet e llojit âlocal readonly fooâ.
- Shtuar një paralajmërim për pamundësinë e komandave.
- Shtuar njĂ« paralajmĂ«rim pĂ«r referencat mbrapsht nĂ« âdeclare x=1 y=$xâ.
- Shtuar një paralajmërim, nëse $? përdoret për të dhënë kodin e rikthimit echo, printf, [ ], [[ ]] dhe test.
- Shtuar një rekomandim për të hequr ((..))inarray[((idx))]=val.
- Shtuar një rekomandim për kombinimin e dy thonjëzave në kontekste aritmetike.
- Shtuar një rekomandim për të hequr thonjëzat e rrethuara në shprehjen a[(x+1)]=val.
Burimi: opennet.ru
