2017-02-16 1 views
0

Мне нужно сделать некоторый скрипт bash, который хранит все его входные данные в файл/трубу и читает его вывод из другого файла и запускается навсегда. Первая часть похожа на cat - > pipein, а вторая - на cat pipeout. Но как сделать обе части одновременно?Переадресовать как stdin, так и stdout в bash в разные файлы

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

ответ

0

Найден ответ!

#!/bin/bash 
cat pin & 
cat >pout 
wait 
+0

Вам не нужны скобки. – Fred

+0

Трюк находится в круглых скобках. Без них процесс остается в первой передаче 'cat', передающей stdin в трубу, и никогда не запускает передачу' pin' pipe в stdout. Мне нужно оба пути в одно и то же время. – AlexZam

+0

Во всех случаях 'cat' будет копировать свой ввод на свой вывод до тех пор, пока он не достигнет конца файла. В настоящее время я не понимаю, почему скобки меняют поведение вашего скрипта, поскольку один и тот же ввод (насколько мне известно) использует ли круглые скобки или нет. Кроме того, по крайней мере, в моей системе использование аргументов '-' или no для' cat' не имеет никакого значения, поскольку обе причины считываются stdin. Если это сработает для вас, то здорово, но я не уверен, что он работает по той причине, по которой вы думаете. – Fred

Смежные вопросы