ĂshtĂ« publikuar versioni 0.9 i projektit ShellCheck, i cili zhvillon njĂ« sistem analizimi statik pĂ«r shell scripts, duke mbĂ«shtetur identifikimin e gabimeve nĂ« skriptet me shpĂ«rndarjen e veçorive tĂ« bash, sh, ksh dhe dash. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n Haskell dhe shpĂ«rndahet nĂ«n licencĂ«n GPLv3. Ofrohen komponentĂ« pĂ«r integrim me Vim, Emacs, VSCode, Sublime, Atom dhe mjedise tĂ« ndryshme tĂ« integruara qĂ« mbĂ«shtesin daljen e informacionit mbi gabimet nĂ« pĂ«rputhje me GCC.

Mbështetet identifikimi në kod si të gabimeve sintaksore që shkaktojnë një gabim në ekzekutimin e interpretorit, ashtu edhe problemeve semantike, të cilat, ndonëse ekzekutimi nuk ndërpritet, shkaktojnë anomali në sjelljen e skriptit. Analizuesi gjithashtu mund të identifikojë ngushticat, problemet e padukshme dhe pengesat që mund të çojnë në dështime nën disa rrethana.
Nga klasat e gabimeve qĂ« identifikohen, mund tĂ« pĂ«rmendim problemet me ekranuar simbolat e veçantĂ« dhe kufizimin me citoj, gabimet nĂ« shprehjet kushtore, pĂ«rdorimin e pasaktĂ« tĂ« komandeve, si dhe problemet me pĂ«rpunimin e kohĂ«s dhe datave, si dhe gabime sintaksore tipike tĂ« fillestarĂ«ve. PĂ«r shembull, mungesa e hapĂ«sirave gjatĂ« krahasimit «[[ $foo==0 ]]», pranimi i hapĂ«sirave «var = 42» ose indicimi i simbolit $ gjatĂ« caktimit «$foo=42», pĂ«rdorimi i variablave pa citoj «echo $1», indicimi i skedave tĂ« tepĂ«rta nĂ« «tr -cd â[a-zA-Z0-9]'»
PĂ«rveç kĂ«saj, mbĂ«shtetet ofrimi i rekomandimeve pĂ«r pĂ«rmirĂ«simin e stilit tĂ« kodit, eliminimin e problemeve me portabilitetin dhe rritjen e besueshmĂ«risĂ« sĂ« funksionimit tĂ« skripteve. PĂ«r shembull, nĂ« vend tĂ« «echo $[1+2]» do tĂ« rekomandohet pĂ«rdorimi i sintaksĂ«s «$((..))», konstrukti ârm -rf «$STEAMROOT/»*â do tĂ« shĂ«nohet si e pasigurt dhe nĂ« gjendje tĂ« fshijĂ« katalogun rrĂ«njĂ« nĂ«se variabla $STEAMROOT nuk Ă«shtĂ« e mbushur, ndĂ«rsa pĂ«rdorimi i «echo {1..10}» do tĂ« theksohet si jo pĂ«rputhĂ«s me dash dhe sh.
Në këtë version të ri:
- ĂshtĂ« shtuar njĂ« paralajmĂ«rim pĂ«r shprehjet e llojit âlocal readonly fooâ.
- ĂshtĂ« shtuar njĂ« paralajmĂ«rim pĂ«r komandat qĂ« nuk janĂ« tĂ« disponueshme.
- ĂshtĂ« shtuar njĂ« paralajmĂ«rim pĂ«r referencat e prapme nĂ« âdeclare x=1 y=$xâ.
- ĂshtĂ« shtuar njĂ« paralajmĂ«rim, nĂ«se $? pĂ«rdoret pĂ«r tĂ« dhĂ«nĂ« kodin e kthimit tĂ« echo, printf, [ ], [[ ]] dhe test.
- ĂshtĂ« shtuar njĂ« rekomandim pĂ«r tĂ« fshirĂ« ((..))inarray[((idx))]=val.
- ĂshtĂ« shtuar njĂ« rekomandim pĂ«r tĂ« bashkuar dyfishin e kornizave nĂ« kontekste aritmetike.
- ĂshtĂ« shtuar njĂ« rekomandim pĂ«r tĂ« fshirĂ« kornizat e rretha nĂ« shprehjen a[(x+1)]=val.
Burimi: opennet.ru
