[[email protected] ~]$ echo ${foo[@]}
a b c d e f
[[email protected] ~]$ unset foo
[[email protected] ~]$ echo ${foo[@]}
[[email protected] ~]$
ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ unset ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
[[email protected] ~]$ foo=(a b c d e f)
[[email protected] ~]$ echo ${foo[@]}
a b c d e f
[[email protected] ~]$ unset 'foo[2]'
[[email protected] ~]$ echo ${foo[@]}
a b d e f
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 2. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0, Π° Π½Π΅ Ρ 1! ΠΡΠΌΠ΅ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΡΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅:
[[email protected] ~]$ foo=(a b c d e f)
[[email protected] ~]$ foo=
[[email protected] ~]$ echo ${foo[@]}
b c d e f
ΠΡΠ±Π°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΠΌΠ°ΡΡΠΈΠ² Π±Π΅Π· ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0:
[[email protected] ~]$ foo=(a b c d e f)
[[email protected] ~]$ echo ${foo[@]}
a b c d e f
[[email protected] ~]$ foo=A
[[email protected] ~]$ echo ${foo[@]}
A b c d e f
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° (man) Π΄Π»Ρ bash Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ ΡΠ»ΠΎΠ²Π° array, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π³ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ-ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΌΠ°Π½Π½Π°, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ Unix (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ sh) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡ . ΠΠ± ΡΡΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΆΠ°Π»Π΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠΈΠΊΠ»Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠΈΠΊΠ»Π° Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°:
for ((Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅1; Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅2; Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅3))
36. ΠΠΊΠ·ΠΎΡΠΈΠΊΠ°
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅ΠΉ Π½Π°ΡΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅, ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅ΠΌ, Π½Π΅ΠΌΠ°Π»ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ bash ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π΅ΠΎΡ Π²Π°ΡΠ΅Π½Π½ΡΠΌΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ bash Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux. ΠΠΎ Π΅ΡΡΡ ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ ΠΈ ΡΠ°ΠΊΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅, Ρ ΠΎΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΠ°ΡΡΠΎ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ -ΡΠΎ ΠΌΡ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ.
ΠΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
bash ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π»ΠΈΠ±ΠΎ ΠΏΡΡΠ΅ΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π»ΠΈΠ±ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΒΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ².
ΠΡΡΠΏΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄:
{ ΠΊΠΎΠΌΠ°Π½Π΄Π°1; ΠΊΠΎΠΌΠ°Π½Π΄Π°2; [ΠΊΠΎΠΌΠ°Π½Π΄Π°3; ...] }
ΠΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°:
(ΠΊΠΎΠΌΠ°Π½Π΄Π°1; ΠΊΠΎΠΌΠ°Π½Π΄Π°2; [ΠΊΠΎΠΌΠ°Π½Π΄Π°3;...])
ΠΡΡΠΏΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π° ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ ΠΊΡΡΠ³Π»ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ. ΠΠΎΡ ΠΈ Π²ΡΡ ΡΠ°Π·Π½ΠΈΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² bash ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ.
ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΡΠ°ΠΊ, Π³Π΄Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π³ΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ? ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΈΠΌΠ΅ΡΡΡΡ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ (ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΊΡΡΡΡ Π΄Π°Π»Π΅Π΅), ΠΈ ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄:
ls -l > output.txt
echo "Listing of foo.txt" >> output.txt
cat foo.txt >> output.txt
ΠΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ: Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ output.txt. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΎ:
{ ls -l; echo "Listing of foo.txt"; cat foo.txt; } > output.txt
ΠΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ:
(ls -l; echo "Listing of foo.txt"; cat foo.txt) > output.txt
ΠΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ ΠΏΠΎΠΌΠΎΠ³ Π½Π°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠΈΠ»Ρ ΠΈ Π²ΡΠ΅ΠΌΡ Π½Π° Π²Π²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½ΠΎ ΠΈΡΡΠΈΠ½Π½Π°Ρ ΠΌΠΎΡΡ Π³ΡΡΠΏΠΏ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°Ρ . Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄, ΠΌΡ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ:
{ ls -l; echo "Listing of foo.txt"; cat foo.txt; } | lpr
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ Π½Π° Π²Ρ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ lpr, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΎΡΡΠ΅Ρ.
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°ΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ. ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π³ΡΡΠΏΠΏΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π΅Π΅ ΠΊΠΎΠΏΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅ΡΡΡΡΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ).
ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
Π Π³Π»Π°Π²Π΅ 28 ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° read Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ. Π’Π°ΠΌ ΠΌΡ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ:
echo "foo" | read
echo $REPLY
ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ REPLY Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ ΠΏΡΡΡΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° read Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ ΠΈ Π΅Π΅ ΠΊΠΎΠΏΠΈΡ REPLY ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, Π»ΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, Π±ΡΠ΄ΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π ΡΡΠ°ΡΡΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄:
<(ΡΠΏΠΈΡΠΎΠΊ)
ΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄:
>(ΡΠΏΠΈΡΠΎΠΊ)
Π³Π΄Π΅ ΡΠΏΠΈΡΠΎΠΊ β ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ read:
read < <(echo "foo")
echo $REPLY
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
[[email protected] ~]$ echo <(echo "foo")
/dev/fd/63
ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ echo ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ /dev/fd/63.
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π°Ρ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ read. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ read Π² ΡΠΈΠΊΠ»Π΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ:
#!/bin/bash
# pro-sub : Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
while read attr links owner group size date time filename; do
Β Β Β Β Β Β Β Β cat <<- EOF
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Filename:Β Β Β $filename
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Size:Β Β Β Β Β Β Β $size
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Owner:Β Β Β Β Β Β $owner
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Group:Β Β Β Β Β Β $group