Π bash ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ°Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ . ΠΠΎΠΌΠ°Π½Π΄Π° wait ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ (ΡΠΎ Π΅ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ).
wait
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° wait. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π²Π° ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ:
#!/bin/bash
# async-parent : ΠΏΡΠΈΠΌΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ)
echo "Parent: starting..."
echo "Parent: launching child script..."
async-child &
pid=$!
echo "Parent: child (PID= $pid) launched."
echo "Parent: continuing..."
sleep 2
echo "Parent: pausing to wait for child to finish..."
wait $pid
echo "Parent: child is finished. Continuing..."
echo "Parent: parent is done. Exiting."
ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ:
#!/bin/bash
# async-child : ΠΏΡΠΈΠΌΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΠΏΠΎΡΠΎΠΌΠΎΠΊ)
echo "Child: child is running..."
sleep 5
echo "Child: child is done. Exiting."
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ pid ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° $!, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wait Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΡΡ ΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
[[email protected] ~]$ async-parent
Parent: starting...
Parent: launching child script...
Parent: child (PID= 6741) launched.
Parent: continuing...
Child: child is running...
Parent: pausing to wait for child to finish...
Child: child is done. Exiting.
Parent: child is finished. Continuing...
Parent: parent is done. Exiting.
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ (named pipe). ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ, Π½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΡΠ²Π΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , Π³Π΄Π΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΠΎΡΡΠ»Π°Ρ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ Π±ΡΡΠ΅ΡΡ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ: ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠΈΡΠ΅Π», ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΡΠ΅Π» (First-In, First-Out, FIFO). Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ (Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ) ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π‘ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΏΡΠΎΡΠ΅ΡΡ1 > ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ_ΠΊΠ°Π½Π°Π»
ΠΈ
ΠΏΡΠΎΡΠ΅ΡΡ2 < ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ_ΠΊΠ°Π½Π°Π»
ΠΈ ΡΠ°ΠΊΠ°Ρ ΠΏΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡ1 | ΠΏΡΠΎΡΠ΅ΡΡ2
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π», Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkfifo:
[[email protected] ~]$ mkfifo pipe1
[[email protected] ~]$ ls -l pipe1
prw-r--r-- 1 meΒ Β Β meΒ Β Β Β 0 2012-07-17 06:41 pipe1
ΠΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkfifo ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ pipe1. ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ls ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠ΅ΡΠ²ΠΎΠΉ Π² ΠΏΠΎΠ»Π΅ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΡΠΎΠΈΡ Π±ΡΠΊΠ²Π° p, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» (pipe).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ, ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π΄Π²Π° ΠΎΠΊΠ½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° (ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π΄Π²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ ). Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΡΡΠ΅ Π΅Π΅ Π²ΡΠ²ΠΎΠ΄ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π»:
[[email protected] ~]$ ls -l > pipe1
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ENTER ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«Π·Π°Π²ΠΈΡΠ»Π°Β». ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΠ°Π½Π°Π»Π° Π΄Π°Π½Π½ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ. Π ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΊΠ°Π½Π°Π» Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΒΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[[email protected] ~]$ cat < pipe1
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cat. ΠΠΎΠΌΠ°Π½Π΄Π° ls Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ°ΠΊ, ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Π½Π°ΡΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ, β ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΡΠΈ ΠΌΡ ΠΎΡ Π²Π°ΡΠΈΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ Π»ΠΈΡΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ Π²Π΅ΡΡ ΡΡΠΊΡ Π°ΠΉΡΠ±Π΅ΡΠ³Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°Β». Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΅ΡΠ΅ ΡΡΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΎΡΠΊΡΡΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° /usr/bin, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΡ !