Я нажимаю Ctrl + D, чтобы завершить стандартный ввод, но это работает, только если я на новой строке. И это требует, чтобы я сначала нажал Enter, что помещает туда нежелательный символ новой строки. Есть ли способ обойти это?
Ctrl-D
не работает только над новой строкой, как Вы говорите. Взять rev
например, который инвертирует каждую входную строку.
Обычно, Вы нажимаете Enter, после того, как введено, и он инвертирует ту строку:
$ rev
asdf
fdsa
Если Вы не хотите добавлять новую строку к своему входу, просто нажмите Ctrl-D
дважды после ввода asdf
, это будет инвертировано в той же строке:
$ rev
asdffdsa
Различные программы обрабатывают это по-другому; например, bc
не ведет себя как вышеупомянутый.