как сигнализировать об окончании ввода стандартного ввода

<ol> <li>в bash я узнал, что сигнал окончания можно изменить с помощью вот документа. но по умолчанию, как я могу сигнализировать конец ввода стандартного ввода?</li> <li>я обнаружил, что с помощью cat и chardet их входные данные stdin могут сигнализироваться как завершенные с помощью ctrl + d. но, похоже, я помню, что ctrl + d и ctrl + c похожи на завершение выполнения запущенной команды. так я не прав?</li> </ol>

<p><kbd>ctrl+d</kbd>при вводе в начале строки на терминале означает конец ввода. это не <a href="http://en.wikipedia.org/wiki/signal\_%28computing%29">сигнал</a> в смысле unix: когда приложение читает с терминала, а пользователь нажимает <kbd>ctrl+d</kbd>приложение уведомляется о том, что достигнут конец файла (как если бы он читал из файла и передал последний байт).</p><p><kbd>ctrl+c</kbd> отправляет сигнал, <a href="http://en.wikipedia.org/wiki/sigint\_%28posix%29"> sigint </a> . по умолчанию sigint (сигнал прерывания) убивает приложение переднего плана, но приложение может перехватить сигнал и реагировать по-другому (например, сама оболочка ловит сигнал и прерывает линию, которую вы начали печатать, но это не так). t выход, он показывает новую подсказку и ждет новой командной строки).</p><p><sub>вы можете изменить символы, связанные с концом файла и sigint, с помощью команды <a href="http://pubs.opengroup.org/onlinepubs/009695399/utilities/stty.html#tag\_04\_135\_05\_05"><code>stty</code></a> , например, <code>stty eof a</code> сделает <code>a</code> символом конца файла, а <code>stty intr ^-</code> отключит символ sigint. это редко полезно.</sub></p>

<p>ваше второе замечание смешивает две совершенно разные вещи.</p><ul> <li>ctrl + c отправляет сигнал уничтожения запущенному процессу.</li> <li>ctrl + d отправляет символ <a href="http://en.wikipedia.org/wiki/end-of-transmission\_character">конец передачи</a> .</li> </ul><p>вы ищете последнее.</p>