āĻāĻŋāĻā§ 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