Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΠ·ΠΈΡ ΠΊΠΎΠ΄Ρ
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $?.
ΠΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ 0 Π΄ΠΎ 255, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 8-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊΠ°.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1, ΠΎΠ½ Π²Π΅ΡΠ½Π΅Ρ 255.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΡΠ΄Π°ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ, Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ Π±Π΅Π· Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
$ date ; echo $? Sat Jan 18 08:06:07 IST 2020 0
$ wrngcmd ; echo $? -bash: wrngcmd: command not found 127
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ·ΠΈΡ ΠΊΠΎΠ΄Ρ Bash
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ΄Ρ Π²ΡΡ ΠΎΠ΄Π° Β«0Β», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΏΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, bash ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π²ΡΡ ΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
ΠΠΎΡΡΠΎΠΌΡ Π² ΠΈΠ΄Π΅Π°Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡ ΠΎΠ΄Π° Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π²ΡΡ ΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ.
ΠΠΎΠ΄ Π²ΡΡ
ΠΎΠ΄Π°
|
Π‘ΠΌΡΡΠ» | ΠΡΠΈΠΌΠ΅Ρ | ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ |
---|---|---|---|
1 | Catchall Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ | let βvar1 = 1/0β |
Π Π°Π·Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»ΡΒ» ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
|
2 |
ΠΠ»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°ΠΌΠΈ
|
empty_function() {} |
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°
|
126 |
ΠΡΠ·Π²Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°
|
/dev/null |
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ
|
127 | βcommand not foundβ | illegal_command | ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ $PATH ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΎΠΉ |
128 | ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° | exit 3.14159 |
exit ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0 – 255 (ΡΠΌ. ΠΏΠ΅ΡΠ²ΡΡ ΡΠ½ΠΎΡΠΊΡ)
|
128 +n |
Π‘ΠΈΠ³Π½Π°Π» ΡΠ°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Β«nΒ»
|
kill -9 $PPID |
$? Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 137 (128 + 9)
|
130 |
Π‘ΠΊΡΠΈΠΏΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Control-C
|
Ctrl-C |
Control-C – ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» 2 ΡΠ°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ (130 = 128 + 2, ΡΠΌ. ΠΡΡΠ΅)
|
255* |
ΠΡΡ
ΠΎΠ΄ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°
|
exit -1 |
Π²ΡΡ
ΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0 – 255
|
#!/bin/bash while true; do echo ${$} done
# sh test.sh .... 2582 2582 2582 2582 2582 2582 ^C geeklab$ echo $? 130
# sh test.sh .... 2582 2582 2582 ...
# kill -9 [pid_of_script]
.... 2602 2602 Killed: 9 geeklab$ echo $? 137