Могу ли я распечатать код для STDOUT, который будет имитировать поведение Ctrl+c внутри cat? Например, я хотел бы, чтобы мой сценарий распечатывал команду cat последующим содержимым файла следующим образом:

cat > /my/file/name.txt
I want this line in the filename above
and this one
and this one as well but I want to exit cat in the next line
Ctrl+c somehow

Я хочу, чтобы пользователь скопировал приведенные выше строки, затем вставил их в окно терминала и, не печатая больше, получил файл name.txt с тремя строками контента, сохранил и вернулся в интерактивный терминал. незамедлительный.

Есть идеи?

2 ответа2

4

Используйте здесь функцию документа :

cat > /my/file/name.txt <<EOF
I want this line in the filename above
and this one
and this one as well but I want to exit cat in the next line
EOF
2

Вам даже не нужен здесь документ, если вы нажмете Ctrl+D, который сигнализирует об окончании ввода.

Ctrl+C означает SIGINT процесс (для отправки сигнала прерывания), тогда как Ctrl+D дает и конец файла процессу, в данный момент считывающему со стандартного ввода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .