ShellCheck 0.9 เดฒเดญเตเดฏเดฎเดพเดฃเต, เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด’เดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดจเดฒเตˆเดธเตผ

เดทเต†เตฝ เดšเต†เด•เตเด•เต 0.9 เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฑเดฟเดฒเต€เดธเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต, เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดฌเดพเดทเต, sh, ksh, เดกเดพเดทเต เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเดคเตเดคเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดฟเดฒเต† เดชเดฟเดถเด•เตเด•เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเต เด•เต‹เดกเต เดนเดพเดธเตโ€Œเด•เต†เดฒเตเดฒเดฟเตฝ เดŽเดดเตเดคเตเด•เดฏเตเด‚ GPLv3 เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. Vim, Emacs, VSCode, Sublime, Atom, GCC-เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดชเดฟเดถเด•เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเด‚เด—เดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดตเดฟเดตเดฟเดง เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด˜เดŸเด•เด™เตเด™เตพ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

ShellCheck 0.9 เดฒเดญเตเดฏเดฎเดพเดฃเต, เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด’เดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดจเดฒเตˆเดธเตผ

เด•เต‹เดกเดฟเดฒเต† เดฐเดฃเตเดŸเต เดตเดพเด•เตเดฏเด˜เดŸเดจ เดชเดฟเดถเด•เตเด•เดณเตเด‚ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดทเตป เดธเดฎเดฏเดคเตเดคเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เด’เดฐเต เดชเดฟเดถเด•เต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดธเต†เดฎเดพเดจเตเดฑเดฟเด•เต เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดธเตเดตเดญเดพเดตเดคเตเดคเดฟเตฝ เด…เดชเดพเด•เดคเด•เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เดšเดฟเดฒ เดชเตเดฐเดคเตเดฏเต‡เด• เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเดšเตเดšเต‡เด•เตเด•เดพเดตเตเดจเตเดจ เดคเดŸเดธเตเดธเด™เตเด™เตพ, เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒเดพเดคเตเดค เดชเตเดฐเดถเตเดจเด™เตเด™เตพ, เด…เดชเด•เดŸเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เด…เดจเดฒเตˆเดธเดฑเดฟเดจเต เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เดชเดฟเดถเด•เตเด•เดณเตเดŸเต† เด•เตเดฒเดพเดธเตเด•เดณเดฟเตฝ, เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเตเด‚ เด…เดต เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเดฟเตฝ เดซเตเดฐเต†เดฏเดฟเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดฎเตเดณเตเดณ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ, เดธเต‹เดชเดพเดงเดฟเด• เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเดฟเดฒเต† เดชเดฟเดถเด•เตเด•เตพ, เด•เดฎเดพเตปเดกเตเด•เดณเตเดŸเต† เดคเต†เดฑเตเดฑเดพเดฏ เด‰เดชเดฏเต‹เด—เด‚, เดธเดฎเดฏเดตเตเด‚ เดคเต€เดฏเดคเดฟเดฏเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ, เดคเตเดŸเด•เตเด•เด•เตเด•เดพเตผเด•เตเด•เตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เดตเดพเด•เตเดฏเด˜เดŸเดจ เดชเดฟเดถเด•เตเด•เตพ เดŽเดจเตเดจเดฟเดต เดจเดฎเตเด•เตเด•เต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, โ€œ[[ $foo==0 ]]โ€ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเตเดŸเต† เด…เดญเดพเดตเด‚, โ€œvar = 42โ€ เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ โ€œ$foo=42โ€ เดจเตฝเด•เตเดฎเตเดชเต‹เตพ $ เดšเดฟเดนเตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดธเต‚เดšเดจ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเดฟเดฒเตเดฒเดพเดคเต† "เดŽเด•เตเด•เต‹ $1", "tr -cd '[a-zA-Z0-9]'" เดŽเดจเตเดจเดคเดฟเดฒเต† เด…เดงเดฟเด• เดšเดคเตเดฐ เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเต‚เดšเดจ,

เด•เต‚เดŸเดพเดคเต†, เด•เต‹เดกเต เดถเตˆเดฒเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเต‹เตผเดŸเตเดŸเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดตเดฟเดถเตเดตเดพเดธเตเดฏเดค เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดถเตเดชเดพเตผเดถเด•เดณเตเดŸเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเต† เด‡เดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, โ€œเดŽเด•เตเด•เต‹ $[1+2]โ€ เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ โ€œ$(..))โ€ เดŽเดจเตเดจ เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ 'rm -rf โ€œ$STEAMROOT/โ€*' เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒเต†เดจเตเดจเต เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚. เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ $STEAMROOT เดชเต‚เดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด•เต‚เดŸเดพเดคเต† "echo {1..10}" เดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด‚ เดกเดพเดทเดฟเดจเตเด‚ sh เดจเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒเต†เดจเตเดจเต เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เดชเตเดคเดฟเดฏ เดตเต‡เตผเดธเดฟเด•เตพ:

  • 'เดฒเต‹เด•เตเด•เตฝ เดฑเต€เดกเต-เด“เตบเดฒเดฟ เดซเต‚' เดชเต‹เดฒเตเดณเตเดณ เดชเดฆเดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดšเต‡เตผเดคเตเดคเต.
  • เดฒเดญเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เด•เดฎเดพเตปเดกเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดšเต‡เตผเดคเตเดคเต.
  • 'x=1 y=$x' เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เดพเตป เดฌเดพเด•เตเด•เตโ€Œเดฒเดฟเด™เตเด•เตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดšเต‡เตผเดคเตเดคเต.
  • $ เด†เดฃเต†เด™เตเด•เดฟเตฝ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดšเต‡เตผเดคเตเดคเต? echo, printf, [], [[ ]] เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฑเดฟเดŸเตเดŸเต‡เตบ เด•เต‹เดกเต เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.
  • เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดถเตเดชเดพเตผเดถ เดšเต‡เตผเดคเตเดคเต ((..))inarray[((idx))]=val.
  • เด—เดฃเดฟเดค เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เด‡เดฐเดŸเตเดŸ เดชเดฐเดพเตปเดคเต€เดธเดฟเดธเตเด•เตพ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดถเตเดชเดพเตผเดถ เดšเต‡เตผเดคเตเดคเต.
  • a[(x+1)]=val เดŽเดจเตเดจ เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเดฟเดฒเต† เดชเดฐเดพเตปเดคเต€เดธเดฟเดธเตเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดถเตเดชเดพเตผเดถ เดšเต‡เตผเดคเตเดคเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•