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.
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