Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
ΠΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° vs ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β Π±ΠΈΡΠ²Π° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°?
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ β Π° Π²Π΅Π΄Ρ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ :). Π ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ? Π’ΡΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ Π²ΡΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΈ Π²Π°ΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ? ΠΠΎΠΆΠ°Π»ΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ Ρ Π΅ΡΠ΅ ΡΠ°Π· Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ ΡΠ²ΠΎΠ΅ ΡΡΠ³ΡΠ±ΠΎ Π»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅. Π ΡΠΊΠ°ΠΆΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ β ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ β ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ Π²ΡΠΆΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΈΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° ΡΠΌΠ΅ΡΡΠΈ. ΠΡΠ»ΠΈ ΠΆΠ΅ Ρ Π½Π°Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΈΠ³ΡΡΡΠΊΠ΅ ΡΠΈΠΏΠ° Π²Π΅ΡΠ΅Π»Π°Ρ ΡΠ΅ΡΠΌΠ° β ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΏΠ°ΡΡΡ, ΠΈΠ·Π²ΠΈΠ½ΠΈΡΡΡΡ ΠΈ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π±Π°Π³ΡΠ΅ΠΏΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΉ ΠΊΡΡΡΠΈΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅ΡΡΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½Π΅ΡΡΠΈΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ CreateEvent(). Π’Π° ΠΆΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΈΠΏΠ° Photoshop ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΠΌΡΠ΅Ρ, ΠΈ Π»ΡΡΡΠ΅ ΡΠ΅ΡΡΠ½ΠΎ ΡΠΏΠ°ΡΡΡ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³Π»ΠΎΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈ Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΡΡΠΈΡΡ ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ±ΠΎΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»ΠΈΡΡ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅. ΠΠ»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌΠΈ. Π‘ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΌΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ. ΠΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» β Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ΄Π° Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° β Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ. Π‘ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ. ΠΠ°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π°Π΄ΡΠ°ΡΡ Π±Π°ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° β ΠΏΠ°Π΄Π°Π΅ΠΌ. ΠΠ΅ ΡΠΎΠ·Π΄Π°Π»ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π° Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΈ ΡΡΡΠΊΠΈ β ΠΏΠ°Π΄Π°Π΅ΠΌ. ΠΠ΅ ΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΠΉΠΏ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΈΡΠ°ΡΡΡΡ? ΠΡΡΡΠ΅ ΡΠΏΠ°ΡΡΡ, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ½ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ, Π° Π²ΠΎΡ Π·Π° ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π²ΠΎΠ·Π½Π΅Π½Π°Π²ΠΈΠ΄ΠΈΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π΄Π½Π΅ΠΉ ΡΠ²ΠΎΠΈΡ . Π Π΄Π»Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Π΅ΡΡΡ Π°Π²ΡΠΎΡΠ΅ΠΉΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π½Π°Ρ Π΅ΠΆΠ΅Π»ΠΈ ΡΠ΅Π³ΠΎ watchdog.
Π§ΡΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ?
Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΠΠ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±Ρ Π΅Π³ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ°, Π΄Π°Π±Ρ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎ Π΄Π΅Π»Ρ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ β ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π§ΡΠΎ ΡΡΠ°Π»ΠΎ ΠΏΠΎΡΠ»Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΊΠΎΠ΄ Π²ΡΡΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΠΠ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (fopen, fclose) ΡΡΠ°Π»ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠ΅Π±ΡΠΎΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ (BOOL ret Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΠ°ΠΊΡΠΎΡ ENSURE Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ) ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΡΡΠ°Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π Π²ΠΎΡ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β ΡΠ»ΡΡΠΈΠ»ΡΡ Π²ΡΠ±ΠΎΡ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π±ΠΎΡΡ ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π²Π·ΡΠ»ΠΈ Π½Π° ΡΠ΅Π±Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΎΠ²Π° ΡΡΠ°Π»ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. Π ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΠΌΠΎΠΉ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ if ΠΈ REQUIRE ΠΏΡΠΎΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ β ΠΈ ΠΎΠ±Π° ΡΠΈΠΏΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΉΠ΄ΡΡ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΡΠ΅ΠΊΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠΆΠΈΠ»ΠΈ ΠΊΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°?
ΠΡΠ²ΠΎΠ΄Ρ
Π§ΡΠΎ Π±Ρ Ρ Ρ ΠΎΡΠ΅Π» ΡΠ΅Π·ΡΠΌΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π±ΡΠ»ΠΈ Π²ΡΠ·Π²Π°Π½Ρ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ, Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² C++. Π’Π°ΠΊ ΡΡΠΎ Π²ΡΠ±ΠΎΡ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β», Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΊΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ Β» ΠΈΠ»ΠΈ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎΒ» ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ C++. ΠΠ°Π΄Π΅ΡΡΡ, ΠΌΠΎΠΉ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΡΡ Π»ΡΡΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ API ΠΈ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π°Π²ΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ β Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π»ΠΎΠΆΠΈΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ API ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΠΈΠΉ Π·Π° ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π² Bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ΄ΠΎΠ±Π½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ (exit codes), Π° Π² Π΄ΡΡΠ³ΠΈΡ Π½Π΅Ρ. Π ΠΊΠΎΠ΄Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π»Π΅Π³ΠΊΠΎ Π·Π°Π±ΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
Π Linux ΠΈ Π΄ΡΡΠ³ΠΈΡ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. Π POSIX ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡ: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ 0 ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ 1 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ? ΠΡΠ»ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΠ²Π΅Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. ΠΡΠ±ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Bash-ΡΠΊΡΠΈΠΏΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡ Π² ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΈΠΊ Bash. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ° SaltStack ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΈΠΏΠ° Nagios. ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΊΡΠΈΠΏΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ°ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ»ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ½ΠΈ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π΅ΡΡΡ Π² Π²Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ . ΠΠΎ Π±Π΅Π· ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² Π²ΡΡ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ: Π»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ
Π Linux Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½, Bash-ΡΠΊΡΠΈΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π² Bash-ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅
Π‘ΠΊΡΠΈΠΏΡ ΡΠΆΠ΅ ΡΠΌΠ΅Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π‘ΠΊΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π±ΡΠ»Π° Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΡΠΈΠΏΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
ΠΠ΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Understanding Exit Codes and how to use them in bash scripts by Benjamin Cane. ΠΠ½Π΅Π½ΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠΈ Π₯Π΅ΠΊΡΠ»Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ Π°Π²ΡΠΎΡΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° & ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ, Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π±Π·Π°ΡΠ΅Π² ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ Π°Π²ΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΎΠΏΠΈΠΊΠΎΠ² ΠΊΠ°ΠΊ-ΡΠΎ ΡΠΏΡΡΠΊΠ°Π»ΠΈ ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ (ΠΈΠ»ΠΈ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ? ΠΈΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΌΠΎ-ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ?) ΡΡΠΎ exceptions Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΌΠ° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ΅ΡΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π°.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π±ΡΠ»ΠΎ, ΠΎΡΠΊΡΠ΄Π° ΡΠ°ΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ (ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Β«Hello, worldΒ», Π΄Π°) Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΡΠΊΠΈ, Π³Π΄Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ β I/O ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π°Π»Π° ΠΎΡΠΊΠ°Π·, ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ, Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΠΉ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΈΡΡ ΠΈ Ρ.ΠΏ. ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ?
Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅ΡΡ ΠΏΠ΅ΡΠ°Π»ΡΠ½Π΅ΠΉ, Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ (ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅) Π²ΡΠ·ΡΠ²Π°ΡΡ assert/abort ΠΈΠ»ΠΈ Π΅ΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ β ΠΎΡΠΊΡΠ΄Π° ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡΠ°Π²ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ±ΠΎΡΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π° ΠΈΠ·-Π·Π° ΡΠ°ΠΊΠΎΠ³ΠΎ Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π²ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π ΠΏΠΈΡΠ΅ΠΌ ΠΌΡ firmware Π΄Π»Ρ ΠΊΠ°ΡΠ΄ΠΈΠΎΡΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅.
ΠΠΊ, abort() β Π½Π΅ Π³ΠΎΠ΄ΠΈΡΡΡ. ΠΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²ΠΎΠ·Π΄ΡΡΠ½ΠΎΠΌΡ ΡΠ°ΡΠΈΠΊΡ β Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΊΠΎΠ»ΠΎΠ», Π²Π΅ΡΡ ΡΠ°ΡΠΈΠΊ ΡΠΌΠ΅Ρ. ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈ ΠΌΠ΅ΡΡΠΎ Π³Π΄Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ΅Π°ΠΊΡΠΈΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΠ΅Ρ ΡΠ±ΠΎΡΠ° ΡΡΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ β ΠΏΠ΅ΡΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ), Π³Π΄Π΅-ΡΠΎ β ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΎ Π²ΡΡ Π±ΡΠ»ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Β«Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΒ» ΡΠ»ΡΠΆΠ°Ρ exceptions ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΎ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Β«Π° ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Β».
PS: Π΅ΡΡ Π±ΡΠ»ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΈΠ½ΡΡΡ Π΅ΡΡΡ Ρ exceptions. Π ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°Π»Π°ΡΡ Π·Π°Π΄Π°ΡΠ° Β«ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ exceptions ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ» (Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Β«ΠΊΠ°ΡΠ΄ΠΈΠΎΡΡΠΈΠΌΡΠ»ΡΡΠΎΡΡΒ» ΠΏΠΈΡΡΡΡΡ). ΠΠΎ ΡΡΠΎ ΠΏΠΎΠ·ΠΆΠ΅.
OpenSource Π² Π·Π°ΠΌΠ΅ΡΠΊΠ°Ρ
Π ΡΡΠ°ΡΡΠ΅ ΠΎ ΡΠΈΠ³Π½Π°Π»Π°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π² ΠΠ‘ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ kill, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ, ΠΊΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²ΡΠ·Π²Π°Π²ΡΠΈΠΌΠΈ ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠ° ΡΠ΅ΠΌΠ° ΡΠ°ΡΡΠ΅Π½ΡΠΊΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΊΠΎΠ΄Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌΠΈ.
Π§Π΅ΠΌ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π°ΡΠ°ΡΡ Π½Π°ΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ β mv, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ. ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ mv ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°, ΠΏΠΎΠΌΠ΅ΡΠ°Π²ΡΠΈΠ΅ mv Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»Π°. Π Π² ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π° ΠΊΡΠ»ΠΈΡΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β» ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π΅Ρ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ $? ΡΠ°Π²Π½ΡΠΌ ΡΡΠΎΠΌΡ ΠΊΠΎΠ΄Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅Ρ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ Π½ΡΠ»Ρ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΡΠΏΠ΅ΡΠ²Π° ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mv. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ, ΠΎ ΡΡΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ°Π²Π½ΡΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΡ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ info-ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ mv (info coreutils mv). Π ΠΊΠΎΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π΅ΡΡΡ Π°Π±Π·Π°Ρ, Π³ΠΎΠ²ΠΎΡΡΡΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ β ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ΅Π±ΠΎΠ³Π°ΡΡΠΉ Π²ΡΠ±ΠΎΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅ΡΡΠ½ΠΎ, Π½Π΅Π³Π΄Π΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡΡ Π΄ΡΡΠ΅ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½Π°!
ΠΠΎΡ grep ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ. Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: Β«ΠΠ±ΡΡΠ½ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΡΠΊΠΎΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ, ΠΈ ΠΊΠΎΠ΄ ΡΠ°Π²Π½ΡΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ grep ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΎΠΏΡΠΈΡ -q, —quiet ΠΈΠ»ΠΈ —silent, ΡΡΡΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ, Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄ 2.Β»
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°:
ΠΠ²ΡΠΎΡ Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΏΠ°ΡΡΡΡ Π² ΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Ρ ΡΠ΅Π»ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π΅ΡΡΡ Π½ΡΠ°Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $?, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, Π²ΡΠΎΠ΄Π΅ echo. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ:
Π£Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΡΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°? ΠΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° mkdir ΡΠ°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΠΈ ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $? Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ if, ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ! ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $? ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° echo, Π° Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkdir.
ΠΠΎΠ»ΡΡΠΈΠ²ΡΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
ΠΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΠΌ, Π³Π΄Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π½Π΅ Π·Π°Π±ΠΎΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²ΡΠ·Π°Π½Π° Π»ΠΈΡΡ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠ°ΡΠ΅Π½:
Π‘ΠΎΠΊΡΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° >&, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mkdir ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΌΠ΅ΡΡΠΎ >& ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ &> ΠΈΠ»ΠΈ 2>&1. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π² Π·Π°ΠΌΠ΅Π½Π΅ ΡΠ΅ΠΊΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π½Π΅Ρ.
Β«ΠΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈΒ», Β«ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β» ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ²
ΠΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π΅ΡΡΡ Π»ΠΈ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΡΠΌΠ°Π», ΡΡΠΎ Π² Π±Π°ΡΠ΅ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΠΌΠΈΠ½- return value, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ: 0, 1 ΠΈ Ρ.Π΄.
ΠΠΎ ΡΡΡ Π·Π°ΡΠ΅Π» Π² Π²ΠΈΠΊΠΈ, ΠΈ ΡΠ°ΠΌ ΠΊΡΡΠ° ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ ΡΡΡΠΊΠ°ΠΌ.
ΠΡΡΡ Π»ΠΈ Ρ ΠΎΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΠ°Π·Π½ΠΈΡΠ°, Π΅Π΄ΡΠΈΡΡ Π΅Π³ΠΎ Π½Π°Π»Π΅Π²ΠΎ? ΠΡΡΡ Π»ΠΈ ΡΠΌΡΡΠ» ΠΏΠ°ΡΠΈΡΡΡΡ?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π΄ΠΎΠ±ΡΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.
Π Π½Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠ΅ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΡΠ°ΡΠ΅ Π² Ρ ΠΎΠ΄Ρ?
ΠΡΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
ΠΠΎΡΠ°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ ΡΠ΅Π±Π΅ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΠ±ΡΠ·Π°Π½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ.
ΠΠΎΡ Π½Π°ΡΠ΅Π» Π΅ΡΠ΅ ΡΡΠ°ΡΡΡ.
ΠΠΎΡ ΠΎΠ΄Ρ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ return value Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
return value ΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π‘Π°ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΊΡΠΎ ΠΎΠ½ΠΈ ΠΈ ΡΡΠΎ ΠΎΠ½ΠΈ.
ΠΡΠ΅ Π² Ρ ΠΎΠ΄Ρ, Π½ΠΎ ΠΠΠ₯Π ΡΠ°ΠΌΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π ΡΠ΅Π»ΠΎΠΌ return code = return status = result code.
exit code ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π° Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΎΡ ΠΈ Ρ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°Π» Π½Π΅ΠΊΡΡ ΡΠ°Π·Π½ΠΈΡΡ.
Cause a shell function to stop executing and return the value n to its caller. If n is not supplied, the return value is the exit status of the last command executed in the function.
ΠΡΠ°Π²Π΄Π° Π½Π΅ ΠΏΠΎΠ½ΡΠ» Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° Ρ exit. ΠΡΠΎΠ΄Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π΄Π΅Π»Π°Π΅Ρ.
Π Π²ΠΎΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π₯ΠΎΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π±Π°ΡΠ° Π²ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ return value, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠ½ΡΠ».
Π Π²ΠΎΡ Π²ΠΈΠΆΡ ΡΡ Π΄ΠΎΠΏΠΈΡΠ°Π».
exit code ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π° Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°, exit Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π», ΠΎΠ½ ΠΏΡΠ΅ΡΡΠ²Π°Π» Π²Π΅ΡΡ ΡΠΊΡΠΈΠΏΡ. Π return ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ if ΠΈΠ»ΠΈ ΡΠΈΠΊΠ», ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° Π΄Π°Π»ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ?
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΠΎΠΉ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠ΄ΠΈΠ½, Ρ ΠΎΡΡ Π² Linux-Π΅ Π»ΡΠ±ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ.
exit Π΄Π΅Π»Π°Π΅Ρ Π±ΡΡΡΡΡΠΉ Π²ΡΡ ΠΎΠ΄ ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ return ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΡΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, return ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π²ΡΠ·Π²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ»Π°Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ return ΠΈ exit Π² ΡΡΠ½ΠΊΡΠΈΠΈ main, Π½ΠΎ ΠΈ ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, Ρ.ΠΊ. Π΄Π°ΠΆΠ΅ main Π² ΡΠ»ΡΡΠ°Π΅ Ρ return ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ·Π²Π°Π²ΡΠ΅ΠΉ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ start, Π° Π² ΡΠ»ΡΡΠ°Π΅ c++ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ·Π²Π°ΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ.
error code ΡΡΠΎ ΡΠΎΠΆΠ΅ return code, Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎ return code ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, ΠΊΠ°ΠΊ ΡΡΠΏΠ΅Ρ , ΡΠ°ΠΊ ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°(error code).
Π½Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·Π²Π°Π»Π° ΡΠ΅ΠΊΡΡΡΡ(ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡ ΡΠ΄Π΅Π»Π°Π» return), Ρ.Π΅. ΠΎΠ½Π° ΠΏΡΠ΅ΡΠ²ΡΡ Π½Π΅ for ΠΈΠ»ΠΈ if, Π° Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ(ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ½ΡΠΈΡ Π²ΡΠ·Π²Π°Π½Π° ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ). ΠΠ»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ for/if Π΅ΡΡΡ break ΠΈ continue