Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° языкС сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 9

Автор МСндСль ΠšΡƒΠΏΠ΅Ρ€

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… совмСстно с echo ΠΈ sed

\n

ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки (новая строка)

\r

ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

\t

табуляция

\v

Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ табуляция

\b

Π·Π°Π±ΠΎΠΉ (backspace)

\a

"звонок" (сигнал)

\0xx

ASCII-символ с ΠΊΠΎΠ΄ΠΎΠΌ 0xx Π² Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5-2. Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ символы

#!/bin/bash

# escaped.sh: экранированныС символы


echo; echo


echo "\v\v\v\v" # Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов \v\v\v\v.

# Для Π²Ρ‹Π²ΠΎΠ΄Π° экранированных символов слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -e.

echo "============="

echo "Π’Π•Π Π’Π˜ΠšΠΠ›Π¬ΠΠΠ― Π’ΠΠ‘Π£Π›Π―Π¦Π˜Π―"

echo -e "\v\v\v\v" # Π’Ρ‹Π²ΠΎΠ΄ 4-Ρ… Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… табуляций.

echo "=============="


echo "ΠšΠΠ’Π«Π§ΠšΠ˜"

echo -e "\042" # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символ " (ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ с Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ASCII 42).

echo "=============="


# ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ $'\X' Π΄Π΅Π»Π°Π΅Ρ‚ использованиС ΠΊΠ»ΡŽΡ‡Π° -e Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

echo; echo "ΠΠžΠ’ΠΠ― БВРОКА И Π—Π’ΠžΠΠžΠš"

echo $'\n' # ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки.

echo $'\a' # Π—Π²ΠΎΠ½ΠΎΠΊ (сигнал).


echo "==============="

echo "ΠšΠΠ’Π«Π§ΠšΠ˜"

# Bash вСрсии 2 ΠΈ Π²Ρ‹ΡˆΠ΅ допускаСт использованиС конструкции $'\nnn'.

# ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: здСсь ΠΏΠΎΠ΄ '\nnn' подразумСваСтся Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

echo $'\t \042 \t' # ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (") ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ табуляциСй.


# Π’ конструкции $'\xhhh' допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния.

echo $'\t \x22 \t' # ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (") ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ табуляциСй.

# Бпасибо Greg Keraunen, Π·Π° это ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅.

# Π Π°Π½Π½ΠΈΠ΅ вСрсии Bash допускали ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ конструкции Π² Π²ΠΈΠ΄Π΅ '\x022'.

echo "==============="

echo


# Π—Π°ΠΏΠΈΡΡŒ ASCII-символов Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

# ----------------------------------------

quote=$'\042' # запись символа " Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

echo "$quote Π­Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ строки ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, $quote Π° эта -- Π½Π΅Ρ‚."


echo


# ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ ASCII-символов Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

triple_underline=$'\137\137\137' # 137 -- это Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ символа '_'.

echo "$triple_underline ΠŸΠžΠ”Π§Π•Π ΠšΠ˜Π’ΠΠΠ˜Π• $triple_underline"


echo


ABC=$'\101\102\103\010' # 101, 102, 103 это A, B ΠΈ C соотвСтствСнно.

echo $ABC


echo; echo


escape=$'\033' # 033 -- Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ символа.

echo "\"escape\" выводится ΠΊΠ°ΠΊ $escape"

# Π²Ρ‹Π²ΠΎΠ΄ отсутствуСт.


echo; echo


exit 0

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования конструкции $' ' Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 34-1.

\"

ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ

echo "ΠŸΡ€ΠΈΠ²Π΅Ρ‚" # ΠŸΡ€ΠΈΠ²Π΅Ρ‚

echo "Он сказал: \"ΠŸΡ€ΠΈΠ²Π΅Ρ‚\"." # Он сказал: "ΠŸΡ€ΠΈΠ²Π΅Ρ‚".


\$

символ Π΄ΠΎΠ»Π»Π°Ρ€Π° (Ссли Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ символов \$ слСдуСт имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π°)

echo "\$variable01" # Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ $variable01


\\

ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш

echo "\\" # Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ \


ПовСдСниС символа \ сильно зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ экранирован Π»ΠΈ ΠΎΠ½, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π»ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ конструкции подстановки ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

# ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ экранированиС ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ

echo \z # z

echo \\z # \z

echo '\z' # \z

echo '\\z' # \\z

echo "\z" # \z

echo "\\z" # \z


# ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

echo `echo \z` # z

echo `echo \\z` # z

echo `echo \\\z` # \z

echo `echo \\\\z` # \z

echo `echo \\\\\\z` # \z

echo `echo \\\\\\\z` # \\z

echo `echo "\z"` # \z

echo `echo "\\z"` # \z


# ВстроСнный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

cat <<EOF

\z

EOF # \z


cat <<EOF

\\z

EOF # \z


# Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ прСдоставил Stephane Chazelas.


ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы Π² строкС, которая записываСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ экранированы, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ составляСт сам ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ символ.

variable=\

echo "$variable"

# НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ - Π΄Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС:

# test.sh: : command not found

# Π’ "чистом" Π²ΠΈΠ΄Π΅ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ (escape) символ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

#

# ЀактичСски, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, происходит экранированиС символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки

#+ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся такая ΠΊΠΎΠΌΠ°Π½Π΄Π°: variable=echo "$variable"

#+ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅ присваиваниС


variable=\

23skidoo

echo "$variable" # 23skidoo

# Π—Π΄Π΅ΡΡŒ всС Π² порядкС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вторая строка

#+ являСтся Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния присваивания, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.


variable=\

# \^ Π—Π° escape-символом слСдуСт ΠΏΡ€ΠΎΠ±Π΅Π»

echo "$variable" # ΠΏΡ€ΠΎΠ±Π΅Π»


variable=\\

echo "$variable" # \


variable=\\\

echo "$variable"

# НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ - сообщСниС ΠΎΠ± ошибкС:

# test.sh: \: command not found

#

# ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ escape-символ экранируСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ оказываСтся нСэкранированным,

#+ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.


variable=\\\\

echo "$variable" # \\

# Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ escape-символы экранированы.

# Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.


Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ списка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

file_list="/bin/cat /bin/gzip /bin/more /usr/bin/less /usr/bin/emacs-20.7"

# Бписок Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚(Ρ‹) ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.


# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° Π² список ΠΈ вывСсти список.

ls -l /usr/X11R6/bin/xsetroot /sbin/dump $file_list


echo "-------------------------------------------------------------------------"


# Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² спискС?

ls -l /usr/X11R6/bin/xsetroot\ /sbin/dump\ $file_list

# Ошибка: ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄ΡƒΡ‚ "слиты" Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ

# ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ 'ls -l' ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚

# ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (слова) -- экранированы.


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, escape-символ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ многострочныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ строку, Π½ΠΎ escape-символ позволяСт ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько строк.

(cd /source/directory && tar cf - . ) | \

(cd /dest/directory && tar xpvf -)

# Команда копирования Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

# Π Π°Π·Π±ΠΈΡ‚Π° Π½Π° Π΄Π²Π΅ строки для большСй удобочитаСмости.


# ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

tar cf - -C /source/directory . |

tar xpvf - -C /dest/directory

# Π‘ΠΌ. ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅.

# (Бпасибо Stephane Chazelas.)

Если строка сцСнария заканчиваСтся символом создания ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° |, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ символа \, для экранирования ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки, ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ, всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ "\" Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… строк многострочных ΠΊΠΎΠΌΠ°Π½Π΄.


echo "foo

bar"

#foo

#bar


echo


echo 'foo

bar' # Никаких Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ.

#foo

#bar


echo


echo foo\

bar # ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки экранирован.

#foobar


echo


echo "foo\

bar" # Π’Π½ΡƒΡ‚Ρ€ΠΈ "нСстрогих" ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ символ "\" интСрпрСтируСтся ΠΊΠ°ΠΊ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ.

#foobar


echo


echo 'foo\

bar' # Π’ "строгих" ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш воспринимаСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ символ.

#foo\

#bar


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Stephane Chazelas.


Π“Π»Π°Π²Π° 6. Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ

...эта Ρ‡Π°ΡΡ‚ΡŒ Bourne shell ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Π° ΠΌΡ€Π°ΠΊΠΎΠΌ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ всС ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Сю.

Chet Ramey

Команда exit ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сцСнария, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° языкС C. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ процСссом.

КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ). Π’ случаС успСха ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ 0, Π° Π² случаС ошибки -- Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ошибки. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ UNIX Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ 0 Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ».