I-ShellCheck 0.9 iyatholakala, isihlaziyi esimile semibhalo yegobolondo

Ukukhishwa kwephrojekthi ye-ShellCheck 0.9 kushicilelwe, kwakhiwa uhlelo lokuhlaziya okumile lwemibhalo yegobolondo esekela ukuhlonza amaphutha emibhalweni kucatshangelwa izici ze-bash, sh, ksh kanye nedeshi. Ikhodi yephrojekthi ibhalwe ku-Haskell futhi isatshalaliswa ngaphansi kwelayisensi ye-GPLv3. Izingxenye zihlinzekelwe ukuze zihlanganiswe ne-Vim, Emacs, VSCode, Sublime, Atom, nezinhlaka ezihlukahlukene ezisekela ukubika amaphutha ahambisana ne-GCC.

I-ShellCheck 0.9 iyatholakala, isihlaziyi esimile semibhalo yegobolondo

Isekela ukukhomba womabili amaphutha e-syntax kukhodi, okuholela ekutheni umhumushi abonise iphutha ngesikhathi sokwenza, kanye nezinkinga ze-semantic, ngenxa yokuthi ukukhishwa kungaphazanyiswa, kodwa kwenzeka okudidayo ekuziphatheni kombhalo. I-analyzer ingakwazi futhi ukukhomba amabhodlela, izinkinga ezingabonakali kanye nezingibe ezingaholela ekuhlulekeni ngaphansi kwezimo ezithile.

Phakathi kwezigaba zamaphutha atholiwe, singaphawula izinkinga ngokubalekela izinhlamvu ezikhethekile futhi sizifake ezicashuniwe, amaphutha ezimisweni ezinemibandela, ukusetshenziswa okungalungile kwemiyalo, izinkinga zokucubungula isikhathi nezinsuku, kanye namaphutha avamile we-syntax kwabaqalayo. Isibonelo, ukungabi bikho kwezikhala uma kuqhathaniswa “[[ $foo==0 ]]”, ukuba khona kwezikhala “var = 42” noma inkomba yophawu lwe-$ lapho kwabiwa “$foo=42”, ukusetshenziswa kweziguquguqukayo. ngaphandle kwezingcaphuno “echo $1”, inkomba yabakaki abayisikwele abengeziwe kokuthi "tr -cd '[a-zA-Z0-9]'",

Ukwengeza, isekela ukukhishwa kwezincomo zokuthuthukisa isitayela sekhodi, ukuqeda izinkinga zokuphatheka, nokwandisa ukwethembeka kwemibhalo. Isibonelo, esikhundleni sokuthi “echo $[1+2]” kuzohlongozwa ukuba kusetshenziswe i-syntax ethi “$((..))”, ukwakhiwa kwe-'rm -rf “$STEAMROOT/”*' kuzomakwa njengokungaphephile. futhi ekwazi ukususa umsuka womkhombandlela uma okuhlukile kungagcwaliswanga okuthi $STEAMROOT, futhi ukusetshenziswa kwe-"echo {1..10}" kuzogqanyiswa njengokungahambisani nodeshi no-sh.

Enguqulweni entsha:

  • Kwengezwe isixwayiso sezinkulumo ezifana nokuthi 'local readonly foo'.
  • Kwengezwe isexwayiso mayelana nemiyalo engatholakali.
  • Kwengezwe isixwayiso mayelana nama-backlinks ukuze 'declare x=1 y=$x'.
  • Kwengezwe isexwayiso uma $? esetshenziselwe ukuphrinta ikhodi yokubuyisela ye-echo, printf, [ ], [[ ]] nokuhlola.
  • Kwengezwe isincomo ukuze kukhishwe ((..))inarray[((idx))]]=val.
  • Kwengezwe izincomo zokuhlanganisa abakaki abakabili kuzimo ze-arithmetic.
  • Kwengezwe isincomo ukuze kukhishwe abakaki kunkulumo ethi a[(x+1)]=val.

Source: opennet.ru

Engeza amazwana