ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ 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 Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡΡΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠ°Π²ΠΈΠ».