ShellCheck 0.9 āĻ‰āĻĒāĻ˛āĻŦā§āĻ§, āĻļā§‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ•

ShellCheck 0.9 āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻļā§‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž bash, sh, ksh āĻāĻŦāĻ‚ āĻĄā§āĻ¯āĻžāĻļā§‡āĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻ°āĻŖāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ•ā§‹āĻĄ Haskell āĻ˛ā§‡āĻ–āĻž āĻāĻŦāĻ‚ GPLv3 āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ Vim, Emacs, VSCode, Sublime, Atom āĻāĻŦāĻ‚ GCC- āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•ā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

ShellCheck 0.9 āĻ‰āĻĒāĻ˛āĻŦā§āĻ§, āĻļā§‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ•

āĻāĻŸāĻŋ āĻ•ā§‹āĻĄā§‡ āĻ‰āĻ­āĻ¯āĻŧ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§‹āĻ­āĻžāĻˇā§€ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻ—āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĻāĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ†āĻšāĻ°āĻŖā§‡ āĻ…āĻ¸āĻ™ā§āĻ—āĻ¤āĻŋ āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ• āĻŦāĻžāĻ§āĻžāĻ—ā§āĻ˛āĻŋ, āĻ…-āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻļāĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻļā§āĻ°ā§‡āĻŖā§€āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡, āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻļā§‡āĻˇ āĻ…āĻ•ā§āĻˇāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋāĻ¤ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĢā§āĻ°ā§‡āĻŽāĻŋāĻ‚, āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§‡āĻ•ā§āĻˇ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ, āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ­ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻŋāĻ– āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻžāĻ•ā§āĻ¯ āĻ—āĻ āĻ¨ā§‡āĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¨ā§‹āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "[[$foo==0 ]]" āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻĒā§‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ, "var = 42" āĻ¸ā§āĻĒā§‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻŦāĻž "$foo=42" āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ $ āĻšāĻŋāĻšā§āĻ¨ā§‡āĻ° āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤, āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ "echo $1", "tr -cd '[a-zA-Z0-9]'"-āĻ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻŦāĻ°ā§āĻ—āĻžāĻ•āĻžāĻ° āĻŦāĻ¨ā§āĻ§āĻ¨ā§€āĻ° āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤,

āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŸāĻŋ āĻ•ā§‹āĻĄ āĻļā§ˆāĻ˛ā§€āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ, āĻŦāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§‚āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļā§‡āĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "āĻ‡āĻ•ā§‹ $[1+2]" āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ "$((..))" āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°āĻž āĻšāĻŦā§‡, āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ 'rm -rf "$STEAMROOT/"*' āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ $STEAMROOT āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻ°ā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ, āĻāĻŦāĻ‚ "echo {1..10}" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĄā§āĻ¯āĻžāĻļ āĻāĻŦāĻ‚ sh āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§‡āĻŽāĻžāĻ¨āĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻļā§āĻŦā§‡:

  • 'āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĒāĻ āĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ foo'-āĻāĻ° āĻŽāĻ¤ā§‹ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ…āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡.
  • 'x=1 y=$x āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°ā§āĻ¨'-āĻ āĻŦā§āĻ¯āĻžāĻ•āĻ˛āĻŋāĻ‚āĻ• āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ¸āĻ¤āĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻĻāĻŋ $? āĻ‡āĻ•ā§‹, printf, [ ], [[ ]] āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  • (..))inarray [((idx))]=val āĻ¸āĻ°āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻĒāĻžāĻŸāĻŋāĻ—āĻŖāĻŋāĻ¤ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡ āĻĄāĻŦāĻ˛ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • a[(x+1)]=val āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€ āĻ…āĻĒāĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨