ShellCheck 0.9 e teng, e leng analyzer e tsitsitseng bakeng sa mangolo a likhetla

Ho lokolloa ha morero oa ShellCheck 0.9 ho phatlalalitsoe, ho nts'etsapele mokhoa oa tlhahlobo e tsitsitseng ea mangolo a khetla e tšehetsang liphoso tsa ho tsebahatsa mangolong ho ela hloko likarolo tsa bash, sh, ksh le dash. Khoutu ea projeke e ngotsoe ka Haskell mme e ajoa tlasa laesense ea GPLv3. Likarolo li fanoe bakeng sa ho kopanngoa le Vim, Emacs, VSCode, Sublime, Atom, le meralo e fapaneng e tšehetsang tlaleho ea liphoso e lumellanang le GCC.

ShellCheck 0.9 e teng, e leng analyzer e tsitsitseng bakeng sa mangolo a likhetla

E ts'ehetsa ho khetholla liphoso tse peli tsa syntax khoutu, e leng se lebisang ho mofetoleli a bonts'a phoso nakong ea ts'ebetso, le mathata a semantic, ka lebaka la hore ts'ebetso e sa sitisoe, empa ho na le liphoso boitšoarong ba script. Mohlahlobi o ka boela oa tseba mathata, mathata a sa bonahaleng le maraba a ka lebisang ho hloleheng tlas'a maemo a itseng.

Har'a lihlopha tsa liphoso tse fumanoeng, re ka hlokomela mathata a ho baleha litlhaku tse khethehileng le ho li theha ka mantsoe a qotsitsoeng, liphoso ka lipolelo tse nang le maemo, tšebeliso e fosahetseng ea litaelo, mathata a ho sebetsana le nako le matsatsi, le liphoso tse tloaelehileng tsa syntax bakeng sa ba qalang. Ka mohlala, ho ba sieo ha libaka ha ho bapisoa “[[ $foo==0 ]]”, boteng ba libaka “var = 42” kapa pontšo ea letšoao la $ ha u abela “$foo=42”, tšebeliso ea mefuta-futa. ntle le mantsoe a qotsitsoeng “echo $1”, sesupo sa masakana a lisekoere a eketsehileng ho "tr -cd '[a-zA-Z0-9]'",

Ho feta moo, e ts'ehetsa tlhahiso ea likhothaletso bakeng sa ho ntlafatsa setaele sa khoutu, ho felisa mathata a ho ts'oaroa, le ho eketsa ts'epahalo ea mangolo. Mohlala, sebakeng sa “echo $[1+2]” ho tla khothaletsoa hore ho sebelisoe poleloana “$((..))”, moaho 'rm -rf “$STEAMROOT/”*' o tla tšoauoa e sa bolokeha. mme e khona ho hlakola bukana ea motso haeba phapang e sa tlatsoa $STEAMROOT, 'me tšebeliso ea "echo {1..10}" e tla totobatsoa e sa lumellane le dash le sh.

Khatisong e ncha:

  • E kentse temoso bakeng sa mantsoe a kang 'local readonly foo'.
  • Tlhokomeliso e kentsoeng mabapi le litaelo tse sa fumaneheng.
  • E kentse temoso mabapi le li-backlink ho 'declare x=1 y=$x'.
  • Temoso e ekelitsoeng haeba $? e sebelisitsoeng ho hatisa khoutu ea ho khutla ea echo, printf, [], [[]] le teko.
  • Keletso e kentsoeng ea ho tlosa ((..))inarray[((idx))]]=val.
  • E kentse khothaletso ea ho kopanya masakane a mabeli maemong a arithmetic.
  • E kentse tlhahiso ea ho tlosa masakakana polelong e reng a[(x+1)]=val.

Source: opennet.ru

Eketsa ka tlhaloso