āĻ†āĻŸāĻŸāĻŋ āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻŦā§āĻ¯āĻžāĻļ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ

āĻ•āĻŋāĻ›ā§ Bash āĻ…āĻĒāĻļāĻ¨ āĻ¸ā§āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻŽāĻ¨ āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ˛ā§‡āĻ–ā§‡āĻ¨

xtrace āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨

āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯,

āĻ¸ā§‡āĻŸ -āĻ“ āĻ­ā§āĻ˛

āĻ­ā§āĻ˛ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻž

set -o errunset

āĻ¯āĻĻāĻŋ āĻŦāĻ˛āĻž āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡āĨ¤

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§‡āĻ• āĻ…āĻĒāĻļāĻ¨ āĻ†āĻ›ā§‡āĨ¤ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻ—ā§āĻ˛āĻŋ āĻŽāĻžāĻ¨āĻ¸ā§‡ āĻ–ā§āĻŦ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ•āĻ°āĻ­āĻžāĻŦā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻŋ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ¸āĻš āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ•āĻŋāĻ›ā§ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯: āĻŽā§āĻ¯āĻžāĻ•āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻžāĻļā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (3.x āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ 4.x) āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ¨ā§‡āĻ‡ā§ˇ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻĻā§‡āĻ–ā§āĻ¨ āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻž āĻāĻ–āĻžāĻ¨ā§‡.

set āĻŦāĻž shopt?

āĻŦā§āĻ¯āĻžāĻļ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻĻā§āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻŦāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻĨā§‡āĻ•ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻŦāĻŋāĻ˛ā§āĻŸ-āĻ‡āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ set и shopt. āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻļā§‡āĻ˛ā§‡āĻ° āĻ†āĻšāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡, āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ•āĻ°ā§‡ (āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¸āĻš), āĻ¤āĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻŽā§‚āĻ˛... āĻ…āĻĒāĻļāĻ¨ set āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ¸ā§‚āĻ¤ā§āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻļā§‡āĻ˛ā§‡āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ§āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻ–āĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ shopt āĻŦā§āĻ¯āĻžāĻļā§‡ āĻ¤ā§ˆāĻ°āĻŋāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻŦā§‡ āĻšāĻžāĻ˛āĻžāĻ¨:

$ set -o
$ shopt

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ set āĻĻā§€āĻ°ā§āĻ˜ āĻŦāĻž āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

$ set -o errunset
$ set -e

āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻāĻ•āĻ‡āĨ¤

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ¸ āĻ˛āĻžāĻ—āĻžāĻ¤ā§‡ āĻšāĻŦā§‡:

$ set +e

āĻĻā§€āĻ°ā§āĻ˜āĻĻāĻŋāĻ¨ āĻ§āĻ°ā§‡ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻŦāĻžāĻ•ā§āĻ¯ āĻ—āĻ āĻ¨āĻŸāĻŋ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĻ¨āĻŋ āĻ•āĻžāĻ°āĻŖ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻŸāĻŋ āĻ­ā§āĻ˛ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¯āĻŧā§‹āĻ— āĻšāĻŋāĻšā§āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻšā§āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡)āĨ¤

В shopt (āĻ†āĻ°āĻ“ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ•) āĻĒāĻ¤āĻžāĻ•āĻžāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ•ā§āĻˇāĻŽ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ -s (āĻ¸ā§‡āĻŸ) āĻāĻŦāĻ‚ -u (āĻ†āĻ¨āĻ¸ā§‡āĻŸ):

$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off

āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨

āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤

1.cdspell

āĻāĻ‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, bash āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ˛ āĻŦā§āĻāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§‡āĻ‡ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡ āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ āĻ†āĻĒāĻ¨āĻŋ āĻ­ā§āĻ˛ āĻŦāĻžāĻ¨āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨āĨ¤

$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..

āĻ†āĻŽāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻŦāĻ›āĻ° āĻ§āĻ°ā§‡ āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ–ā§āĻŦ āĻ•āĻŽāĻ‡ (āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻŦāĻ›āĻ°ā§‡ āĻāĻ•āĻŦāĻžāĻ°) āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ–ā§āĻŦ āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻŦā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĻāĻŋāĻ¨ā§‡ cdspell āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻāĻšāĻžāĻ¯āĻŧ, āĻ†āĻ•ā§āĻˇāĻ°āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨āĨ¤

2. āĻ…āĻŸā§‹āĻ¸āĻŋāĻĄāĻŋ

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻāĻ¨ā§āĻŸā§āĻ°āĻŋāĻ° āĻ…āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ‡āĻšā§āĻ›ā§āĻ• āĻ¨āĻž āĻšāĻ¨ cd, āĻ¤āĻžāĻ°āĻĒāĻ° X āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ X āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

$ shopt -s autocd
$ abcdefg
$ cd ..

āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛āĻŋāĻ¤, āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ˛āĻžāĻĢ āĻĻāĻŋāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ:

$ ./abc[TAB][RETURN]
cd -- ./abcdefg

āĻļā§āĻ§ā§ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĻā§‡āĻŦā§‡āĻ¨ āĻ¨āĻž rm -rf * (āĻšā§āĻ¯āĻžāĻ, āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻ­āĻŦ)āĨ¤

3. āĻĄāĻžāĻ‡āĻ°ā§‡āĻ•ā§āĻ¸āĻĒā§āĻ¯āĻžāĻ¨ā§āĻĄ

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯āĻž āĻŸā§āĻ¯āĻžāĻŦ āĻŸāĻŋāĻĒā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡:

$ shopt -s direxpand
$ ./[TAB]     # СаĐŧĐĩĐŊŅĐĩŅ‚ŅŅ ĐŊĐ°...
$ /full/path/to/current_working_folder
$ ~/[TAB]     # СаĐŧĐĩĐŊŅĐĩŅ‚ŅŅ ĐŊĐ°...
$ /full/path/to/home/folder
$ $HOME/[TAB] #  СаĐŧĐĩĐŊŅĐĩŅ‚ŅŅ ĐŊĐ°...
$ /full/path/to/home/folder

āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ

4. āĻšā§‡āĻ•āĻœāĻŦ

āĻŦā§āĻ¯āĻžāĻ•āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄā§‡ āĻāĻ–āĻ¨āĻ“ āĻ•āĻžāĻœ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•āĻ˛ā§‡ āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ˛āĻ— āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ…āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻ¨āĻ“ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŦāĻžāĻ° āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§āĻ¨ exit.

$ shopt -s checkjobs
$ echo $$
68125             # <= ID ĐŋŅ€ĐžŅ†ĐĩŅŅĐ° Đ´ĐģŅ ОйОĐģĐžŅ‡Đēи
$ sleep 999 &
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ echo $$
68125             # <= ID ĐŋŅ€ĐžŅ†ĐĩŅŅĐ° Đ´ĐģŅ ОйОĐģĐžŅ‡Đēи Ņ‚ĐžŅ‚ ĐļĐĩ
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ exit
$ echo $$
$ 59316           # <= ĐŊĐ° ŅŅ‚ĐžŅ‚ Ņ€Đ°Đˇ ID ĐŋŅ€ĐžŅ†ĐĩŅŅĐ°  иСĐŧĐĩĐŊиĐģŅŅ

āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻĒāĻ°āĻžāĻļāĻ•ā§āĻ¤āĻŋ

5.āĻ—ā§āĻ˛ā§‹āĻŦāĻ¸ā§āĻŸāĻžāĻ°

āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸ā§āĻĒāĻžāĻ° āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĻā§‡āĻ¯āĻŧ! āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§‡āĻ¨:

$ shopt -s globstar
$ ls **

āĻ¤āĻžāĻ°āĻĒāĻ° āĻļā§‡āĻ˛ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ•āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻžāĻŦā§‡āĨ¤

āĻ¸āĻ™ā§āĻ—ā§‡ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ direxpand āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻ•ā§āĻ°āĻŽā§‡āĻ° āĻ¨ā§€āĻšā§‡āĻ° āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĻā§āĻ°ā§āĻ¤ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n) 

6.extglob

āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻāĻŽāĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤āĨ¤ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻĻāĻ°āĻ•āĻžāĻ°ā§€:

$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile

āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€āĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻŦāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§ƒāĻĨāĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° āĻ†āĻ›ā§‡:

? = āĻļā§‚āĻ¨ā§āĻ¯ āĻŦāĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡! = āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻž āĻāĻŽāĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻžāĻ¨ * = āĻļā§‚āĻ¨ā§āĻ¯ āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ˜āĻŸāĻ¨āĻž + = āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ˜āĻŸāĻ¨āĻž @ = āĻ āĻŋāĻ• āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž

āĻĻā§āĻ°ā§āĻ˜āĻŸāĻ¨āĻž āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž

7. āĻšāĻŋāĻ¸ā§āĻŸā§‹āĻ°āĻŋāĻĢāĻžāĻ‡

āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒāĻŖā§‡āĻ° āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ˛āĻžā§āĻš āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻ­ā§€āĻ¤āĻŋāĻ•āĻ° āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ !! и !$.

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ histverify āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Bash āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻ†āĻ¸āĻ˛ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ†āĻ—ā§‡ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°ā§‡:

$ shopt -s histverify
$ echo !$          # <= По ĐŊĐ°ĐļĐ°Ņ‚иŅŽ Enter ĐēĐžĐŧĐ°ĐŊĐ´Đ° ĐŊĐĩ СаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ
$ echo histverify  # <= ОĐŊĐ° ŅĐŊĐ°Ņ‡Đ°ĐģĐ° Đ´ĐĩĐŧĐžĐŊŅŅ‚Ņ€Đ¸Ņ€ŅƒĐĩŅ‚ŅŅ ĐŊĐ° ŅĐēŅ€Đ°ĐŊĐĩ,
histverify         # <= Đ° ĐŋĐžŅ‚ĐžĐŧ СаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ 

8. āĻ¨ā§‹āĻ•ā§āĻ˛ā§‹āĻŦāĻžāĻ°

āĻ†āĻŦāĻžāĻ°, āĻĻā§‚āĻ°ā§āĻ˜āĻŸāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¯ā§‡āĻŽāĻ¨ āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻŸ āĻ•āĻ°āĻž āĻĨā§‡āĻ•ā§‡ (>) āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻĒāĻ°ā§āĻ¯āĻ¯āĻŧ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ set -ĐĄ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻŸāĻŋāĻ‚ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ˛ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻŦāĻžāĻ‡āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ >|:

$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

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