ShellCheck 0.9 inapatikana, kichanganuzi tuli cha hati za ganda

Kutolewa kwa mradi wa ShellCheck 0.9 kumechapishwa, ikitengeneza mfumo wa uchanganuzi tuli wa hati za ganda ambao unaauni makosa ya kutambua katika hati kwa kuzingatia vipengele vya bash, sh, ksh na dashi. Msimbo wa mradi umeandikwa katika Haskell na kusambazwa chini ya leseni ya GPLv3. Vipengee vimetolewa kwa ajili ya kuunganishwa na Vim, Emacs, VSCode, Sublime, Atom, na mifumo mbalimbali ambayo inasaidia kuripoti makosa yanayotangamana na GCC.

ShellCheck 0.9 inapatikana, kichanganuzi tuli cha hati za ganda

Inasaidia kutambua makosa yote mawili ya sintaksia katika msimbo, ambayo husababisha mkalimani kuonyesha makosa wakati wa utekelezaji, na matatizo ya kisemantiki, kutokana na ambayo utekelezaji haujatatizwa, lakini hitilafu katika tabia ya hati hutokea. Analyzer pia inaweza kutambua vikwazo, matatizo yasiyo ya wazi na mitego ambayo inaweza kusababisha kushindwa chini ya hali fulani.

Kati ya madarasa ya makosa yaliyogunduliwa, tunaweza kutambua shida za kutoroka wahusika maalum na kuziunda kwa nukuu, makosa katika misemo ya masharti, utumiaji sahihi wa amri, shida za usindikaji wa wakati na tarehe, na makosa ya kawaida ya syntax kwa Kompyuta. Kwa mfano, kukosekana kwa nafasi wakati wa kulinganisha β€œ[[ $foo==0 ]]”, uwepo wa nafasi β€œvar = 42” au kiashirio cha alama ya $ wakati wa kugawa β€œ$foo=42”, matumizi ya viambajengo. bila nukuu β€œecho $1”, kiashiria cha mabano ya mraba ya ziada katika "tr -cd '[a-zA-Z0-9]'",

Zaidi ya hayo, inasaidia matokeo ya mapendekezo ya kuboresha mtindo wa msimbo, kuondoa matatizo ya kubebeka, na kuongeza kutegemewa kwa hati. Kwa mfano, badala ya β€œecho $[1+2]” itapendekezwa kutumia sintaksia β€œ$((..))”, ujenzi wa 'rm -rf β€œ$STEAMROOT/”*' utatiwa alama kuwa si salama. na yenye uwezo wa kufuta saraka ya mizizi ikiwa utofauti haujajazwa $STEAMROOT, na matumizi ya "echo {1..10}" yataangaziwa kuwa hayapatani na dashi na sh.

Katika toleo jipya:

  • Imeongeza onyo kwa misemo kama vile 'foo ya kusoma pekee'.
  • Imeongeza onyo kuhusu amri zisizopatikana.
  • Imeongeza onyo kuhusu viungo vya nyuma ili 'kutangaza x=1 y=$x'.
  • Imeongeza onyo ikiwa $? kutumika kuchapisha msimbo wa kurudi wa echo, printf, [ ], [[ ]] na test.
  • Umeongeza pendekezo la kuondoa ((..))inarray[((idx))]]=val.
  • Imeongeza pendekezo la kuambatanisha mabano mawili katika miktadha ya hesabu.
  • Imeongeza pendekezo la kuondoa mabano katika usemi a[(x+1)]=val.

Chanzo: opennet.ru

Kuongeza maoni