ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ
trapΠΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° ΡΠΈΠ³Π½Π°Π», ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
-ΠΊΠΎΠΌΠ°Π½Π΄Π΅''Π ΡΠ°Π±Π». 2.9 ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π². ΡΡΠ°Π½Π΄Π°ΡΡ Π₯/Open ΡΠΈΠ³Π½Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ (ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠ°Π·Π΄Π΅Π»Π° 7 ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ (
man 7 signalΠ’Π°Π±Π»ΠΈΡΠ° 2.9
| Π‘ΠΈΠ³Π½Π°Π» | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
HUP (1) | ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ |
INT (2) | ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<C> |
QUIT (3) | ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<\> |
ABRT (6) | ΠΠ²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ |
ALRM (14) | ΠΠ²Π°ΡΠΈΠΉΠ½ΡΠΉ ΡΠΈΠ³Π½Π°Π»; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΉ Π»ΠΈΠΌΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ |
TERM (15) | ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅; ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ |
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.15.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΠ³Π½Π°Π»Π°.
#!/bin/shtrap 'rm -f /tmp/my_tmp_file_$$' INTecho creating file /tmp/my_tmp_file_$$date > /tmp/my_tmp_file_$$echo "press interrupt (CTRL-C) to interrupt..."while [ -f /tmp/my_tmp_file_$$ ] ; doΒ echo File existsΒ sleep 1doneecho The file no longer exists trap INTecho creating file /tmp/my_tmp_file_$$date > /tmp/my_tmp_file_$$echo "press interrupt (CTRL-C) to interrupt..."while [ -f /tmp/my_tmp_file_$$ ]; doΒ echo File existsΒ sleep 1doneecho we never get hereexit 0ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π½Π°ΠΆΠΈΠΌΠ°Ρ ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΡ <Ctrl> ΠΈ Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΡ <C> (ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ) Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠΈΠΊΠ»ΠΎΠ², ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
creating file /tmp/my_tmp_file_141press interrupt (CTRL-C) to interrupt ...File existsFile existsFile existsFile existsThe file no longer existscreating file /tmp/my tmp_file_141press interrupt (CTRL-C) to interrupt ...File existsFile existsFile existsFile existsΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
traprm -f /tmp/my_tmp_file_$$INTwhilerm -f /tmp/my_tmp_file_$$whilewhileΠΠ°Π»Π΅Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
trapINTwhileechoexitΠΠΎΠΌΠ°Π½Π΄Π°
unsetIFSΠ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΠΎΠΊΠ°
Hello world#!/bin/shfoo="Hello World"echo $foounset fooecho $fooΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅
foo=unsetfoo=foonullfoounset foofoo