Ctrl+D, коли вводиться на початку рядка на терміналі, означає кінець вводу. Це не сигнал в unix сенсі: коли програма читає з терміналу і користувач натискає Ctrl+D, програма повідомляється, що кінець файлу досягнуто (подібно до того, як він читав з файлу і передав останній байт).
Ctrl+Cпередає сигнал, SIGINT . За замовчуванням SIGINT (сигнал переривання) вбиває програму переднього плану, але програма може вловлювати сигнал і реагувати якимось іншим способом (наприклад, сама оболонка вловлює сигнал і перериває лінію, яку ви почали вводити, але це не ' t вихід, він показує нову підказку і чекає нового командного рядка).
Ви можете змінити символи, пов'язані з кінцевим файлом та SIGINT за допомогою stty
команди, наприклад stty eof a
, зробить a
символ кінця файлу та stty intr ^-
відключить символ SIGINT. Це рідко корисно.
Ctrl+D
означає Ctrl та капітал D чи це не має значення?