Один из способов - сломать трубу. Однако прогрессирующая программа больше не может быть вызвана с помощью fg
.
Вы можете сначала отказаться от задания init
с помощью команды disown -h JobID | PID
после выполнения bg JobID | PID
. И тогда вы можете закрыть терминал.
Программа не останавливается. С тех пор он будет больше похож на демона. Однако он не может получить ничего из stdin
, и его вывод на stdout
и stderr
будет игнорироваться.
Ваша команда хороша:
cat foo1 - foo2 > foo3
Но вы не должны использовать Ctrl + C для завершения ввода с терминала. Это прерывает всю команду. Используйте Ctrl + D .
Этого можно добиться с помощью echo
и cat
. Следующее должно работать для вас
echo 'Some text in between' | cat foo1 - foo2 > foo3
@Chetna C, вероятно, знает ответ, который вы ищете. Но вот еще один, который работает в bash:
user@hostname ~/test
bash$ echo charlie > foo1
user@hostname ~/test
bash$ echo dennis > foo2
user@hostname ~/test
bash$ cat foo1 <(echo "mac") foo2 > foo3
user@hostname ~/test
bash$ cat foo3
charlie
mac
dennis