ShellCheck 0.9 เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจธเจผเฉˆเฉฑเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ•

ShellCheck 0.9 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจธเจผเฉˆเฉฑเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ‡ เจธเจฅเจฟเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจตเจฟเจ•เจธเจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเฉ‹ bash, sh, ksh เจ…เจคเฉ‡ เจกเฉˆเจธเจผ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เฉ‹เจก เจนเฉˆเจธเจ•เฉ‡เจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ GPLv3 เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค Vim, Emacs, VSCode, Sublime, Atom, เจ…เจคเฉ‡ GCC-เจ…เจจเฉเจ•เฉ‚เจฒ เจ—เจฒเจคเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ— เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจฒเจˆ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค

ShellCheck 0.9 เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจธเจผเฉˆเฉฑเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ•

เจ‡เจน เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฆเฉ‹เจจเฉ‹ เจธเฉฐเจŸเฉˆเจ•เจธ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจนเจพเจ‡เจคเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉเจญเจพเจธเจผเฉ€เจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจฐเจฅ เจธเฉฐเจฌเฉฐเจงเฉ€ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚, เจœเจฟเจธ เจ•เจพเจฐเจจ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจตเจฟเฉฑเจš เจตเจฟเจ˜เจจ เจจเจนเฉ€เจ‚ เจชเฉˆเจ‚เจฆเจพ, เจชเจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจตเจฟเฉฑเจš เจตเจฟเจ—เจพเฉœ เจชเฉˆเจฆเจพ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ• เจฐเฉเจ•เจพเจตเจŸเจพเจ‚, เจ—เฉˆเจฐ-เจธเจชเฉฑเจธเจผเจŸ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฎเฉ€เจ†เจ‚ เจฆเฉ€ เจตเฉ€ เจชเจ›เจพเจฃ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เฉเจ เจ–เจพเจธ เจนเจพเจฒเจคเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจธเจซเจฒเจคเจพเจตเจพเจ‚ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ–เฉ‹เจœเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจคเจฐเฉเจŸเฉ€เจ†เจ‚ เจฆเฉ€เจ†เจ‚ เจธเจผเฉเจฐเฉ‡เจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เฉฑเจ–เจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉ‹เจŸเจธ เจตเจฟเฉฑเจš เจซเจฐเฉ‡เจฎ เจ•เจฐเจจ, เจ•เฉฐเจกเฉ€เจธเจผเจจเจฒ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€เจ†เจ‚, เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจ—เจฒเจค เจตเจฐเจคเฉ‹เจ‚, เจธเจฎเจพเจ‚ เจ…เจคเฉ‡ เจคเจพเจฐเฉ€เจ–เจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚, เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเจจ เจตเจพเจฒเจฟเจ†เจ‚ เจฒเจˆ เจ†เจฎ เจธเฉฐเจŸเฉˆเจ•เจธ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจจเฉ‹เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, โ€œ[[$foo==0 ]]โ€ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเจชเฉ‡เจธ เจฆเฉ€ เจ…เจฃเจนเฉ‹เจ‚เจฆ, โ€œvar = 42โ€ เจธเจชเฉ‡เจธ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจœเจพเจ‚ โ€œ$foo=42โ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ $ เจšเจฟเฉฐเจจเฉเจน เจฆเจพ เจธเฉฐเจ•เฉ‡เจค, เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ "echo $1" เจ•เฉ‹เจŸเจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, "tr -cd '[a-zA-Z0-9]' เจตเจฟเฉฑเจš เจตเจพเจงเฉ‚ เจตเจฐเจ— เจฌเจฐเฉˆเจ•เจŸเจพเจ‚ เจฆเจพ เจธเฉฐเจ•เฉ‡เจค",

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจ•เฉ‹เจก เจธเจผเฉˆเจฒเฉ€ เจจเฉ‚เฉฐ เจธเฉเจงเจพเจฐเจจ, เจชเฉ‹เจฐเจŸเฉ‡เจฌเจฟเจฒเจŸเฉ€ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‚เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ‚ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, โ€œecho $[1+2]โ€ เจฆเฉ€ เจฌเจœเจพเจ เจ‡เจน เจธเฉฐเจŸเฉˆเจ•เจธ โ€œ$((..))โ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจชเฉเจฐเจธเจคเจพเจต เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจ‰เจธเจพเจฐเฉ€ 'rm -rf โ€œ$STEAMROOT/โ€*' เจจเฉ‚เฉฐ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจœเฉ‹เจ‚ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ…เจคเฉ‡ เจฐเฉ‚เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ $STEAMROOT เจจเจนเฉ€เจ‚ เจญเจฐเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ "echo {1..10}" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจกเฉˆเจธเจผ เจ…เจคเฉ‡ sh เจจเจพเจฒ เจ…เจธเฉฐเจ—เจค เจตเจœเฉ‹เจ‚ เจ‰เจœเจพเจ—เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš:

  • 'เจฒเฉ‹เจ•เจฒ เจฐเฉ€เจกเจ“เจจเจฒเฉ€ foo' เจตเจฐเจ—เฉ‡ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจฒเจˆ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค
  • เจ…เจฃเจ‰เจชเจฒเจฌเจง เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฌเจพเจฐเฉ‡ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค
  • 'เจเจ•เจธ=1 y=$x' เจตเจฟเฉฑเจš เจฌเฉˆเจ•เจฒเจฟเฉฐเจ•เจธ เจฌเจพเจฐเฉ‡ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค
  • เจœเฉ‡ $? echo, printf, [ ], [[ ]] เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจฆเฉ‡ เจฐเจฟเจŸเจฐเจจ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
  • ((..))inarray[((idx))]=val เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผเฅค
  • เจ…เฉฐเจ•เจ—เจฃเจฟเจค เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจตเจฟเฉฑเจš เจกเจฌเจฒ เจฌเจฐเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเจซเจผเจพเจฐเจธเจผ เจœเฉ‹เฉœเฉ€ เจ—เจˆเฅค
  • เจธเจฎเฉ€เจ•เจฐเจจ a[(x+1)]=val เจตเจฟเฉฑเจš เจฌเจฐเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเจซเจผเจพเจฐเจธเจผ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹