В ударе просто используйте что-то как alertcommand | grep $(date +"%m/%d")
$()
выполняет команду в подоболочке и возвращает вывод команды как строка. Кроме того, можно включить команду с обратными галочками к тому же эффекту.
если это удовлетворяет Вас, вот суждение, как сделать это использование каналы.
Предположение - то, что входные и выходные файлы "badtool" могут быть каналами.
mkfifo IF
mkfifo OF
# one therminal
tool | tool2 |... tooln > IF
# second terminal
bad_tool IF OF
#third terminal
tooln+1 < OF | tool n+2 | tool n+3 ...
Если требуется создать сценарий, можно перенести те части в функции:
function A(){ ... }
function B(){ ... }
function C(){ ... }
# and run in background in parallel
A&
B&
C&
Продолжите все свои изображения (каналы IF
и OF
являются "допускающими повторное использование"), и после того, как целое задание удалит их
rm IF OF
Если конвейер обычно был бы:
tool1 | tool2 | tool3
но tool2 является “плохим”, который требует 2 параметров (1-й входной файл, 2-й выходной файл), можно переписать его как это:
tool2 <(tool1) >(tool3)
Конечно, если Ваша оболочка поддерживает замену процесса.
mkfifo
"руководство pipeing". Таким образом в зависимости от длины сценария любой могло бы быть более удобно использовать сортировщика t <(X) >(Y)
форма, любой для разделения его на разделы. Как я понял от проблемного оператора - существует инструмент MANY, так вот почему я предложил то же, но в форме, позволяющей разделять материал на разделы-> для улучшения удобочитаемости кода.
– Grzegorz Wierzowiecki
07.06.2012, 14:03
Если это - Linux, можно сделать
bad_tool /dev/stdin /dev/stdout
/dev/stdin
и /dev/stdout
просто символьные ссылки на /proc/self/fd/{0,1}
(соответственно).