ShellCheck 0.9 wa, olutupalẹ aimi fun awọn iwe afọwọkọ ikarahun

Itusilẹ ti iṣẹ akanṣe ShellCheck 0.9 ti ṣe atẹjade, idagbasoke eto fun itupalẹ aimi ti awọn iwe afọwọkọ ikarahun ti o ṣe atilẹyin idamo awọn aṣiṣe ninu awọn iwe afọwọkọ ni akiyesi awọn ẹya ti bash, sh, ksh ati dash. Koodu ise agbese ti kọ ni Haskell ati pinpin labẹ iwe-aṣẹ GPLv3. Awọn paati ti pese fun isọpọ pẹlu Vim, Emacs, VSCode, Sublime, Atom, ati awọn ilana oriṣiriṣi ti o ṣe atilẹyin ijabọ aṣiṣe ibaramu GCC.

ShellCheck 0.9 wa, olutupalẹ aimi fun awọn iwe afọwọkọ ikarahun

O ṣe atilẹyin idamo awọn aṣiṣe sintasi mejeeji ni koodu, eyiti o yorisi olutumọ ti n ṣafihan aṣiṣe ni akoko ipaniyan, ati awọn iṣoro atunmọ, nitori eyiti ipaniyan ko ni idalọwọduro, ṣugbọn awọn asemase ninu ihuwasi ti iwe afọwọkọ naa waye. Oluyẹwo tun le ṣe idanimọ awọn igo, awọn iṣoro ti kii ṣe kedere ati awọn ọfin ti o le ja si awọn ikuna labẹ awọn ipo kan.

Lara awọn kilasi ti awọn aṣiṣe ti a rii, a le ṣakiyesi awọn iṣoro pẹlu salọ awọn ohun kikọ pataki ati sisọ wọn ni awọn agbasọ, awọn aṣiṣe ni awọn ọrọ ipo, lilo awọn aṣẹ ti ko tọ, akoko ṣiṣe awọn iṣoro ati awọn ọjọ, ati awọn aṣiṣe sintasi aṣoju fun awọn olubere. Fun apẹẹrẹ, isansa awọn alafo nigbati o ba ṣe afiwe “[[$foo==0]]”, wiwa awọn alafo “var = 42” tabi itọkasi aami $ nigbati o ba fi “$ foo=42”, lilo awọn oniyipada laisi awọn agbasọ ọrọ “iwoyi $1”, itọkasi awọn biraketi onigun mẹrin ni “tr -cd ‘[a-zA-Z0-9]’”,

Ni afikun, o ṣe atilẹyin iṣelọpọ ti awọn iṣeduro fun imudarasi ara koodu, imukuro awọn iṣoro gbigbe, ati jijẹ igbẹkẹle awọn iwe afọwọkọ. Fun apẹẹrẹ, dipo “iwoyi $[1+2]” yoo dabaa lati lo sintasi “$((..))”, ikole 'rm -rf “$STEAMROOT/”*' yoo jẹ ami si bi ailewu. ati pe o lagbara lati paarẹ iwe ilana gbongbo ti oniyipada ko ba kun $STEAMROOT, ati pe lilo “echo {1..10}” yoo jẹ afihan bi ko ni ibamu pẹlu dash ati sh.

Ninu ẹya tuntun:

  • Ikilọ ti a ṣafikun fun awọn ikosile bi 'foo kika nikan ti agbegbe'.
  • Ikilọ ti a ṣafikun nipa awọn aṣẹ ti ko si.
  • Ikilọ ti a ṣafikun nipa awọn asopo-pada si 'sọ x=1 y=$x'.
  • Ikilọ ti a ṣafikun ti o ba jẹ $? ti a lo lati tẹ koodu ipadabọ ti iwoyi, printf, [], [[]] ati idanwo.
  • Iṣeduro ti a ṣafikun lati yọkuro ((...)) inarray[((idx))]=val.
  • Ṣafikun iṣeduro kan fun sisọpọ awọn akọmọ meji ni awọn ipo iṣiro.
  • Ṣe afikun iṣeduro kan lati yọ awọn akọmọ kuro ninu ikosile a[(x+1)]=val.

orisun: opennet.ru

Fi ọrọìwòye kun