Потому что 0
- это код выхода для нормального состояния выхода.
Перехват сигнала прерывания или прерывания не является обычным состоянием выхода и не приостанавливается в фоновом режиме.Ненулевые коды выхода говорят вам, что именно это происходит, поэтому вы можете соответствующим образом отреагировать в сценарии, если задание, которое он запускает, прерывается или приостанавливается, а не завершается обычным образом с состоянием без ошибки.
Интерактивный сеанс оболочки, когда вы нажимаете ^ C , который генерирует сигнал SIGINT
(сигнал 2), прерывает текущий ввод интерактивной команды, который не является -нормальное состояние для записи команды (т. е. командной строки). Это приводит к тому, что она возвращает статус 130 (128 + 2) и дает вам новое приглашение.
Более подробную информацию можно найти на http://tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF .