Можно создать наборы CPU на командной строке также. man cpuset
Позже можно присвоить (рабочие) процессы им.
Можно использовать cat
и канал:
cat file1 file2 file3 ... fileN | ./script
Ваш пример, с помощью канала и никакого временного файла:
join file1.txt file2.txt | ./script
Чтобы добавить к ответу @Jonah Braun, если вам когда-нибудь понадобится добавить вывод процесса в ваш сценарий, т. е. ваш файл может быть не на вашем диске, а доступен через URL
с помощью curl
или аналогичный инструмент.
Нечто подобное можно использовать для получения stdout
нескольких процессов и использования их в скрипте черезstdin
Это будет скрипт для обработки ввода Содержаниеmulti-input.sh
:
#!/usr/bin/env bash
while read line; do
echo $line
done
А теперь проверь:
$./multi-input.sh < <(cat <(echo process 1) <(echo process 2) <(echo process 3))
Выход:
process 1
process 2
process 3
<()
превращает процесс в виртуальный file
, используя fd
, если хотите, поэтому для его чтения необходимо <
. cat
сам по себе не нуждается в этом, потому что он делает то, что делает, объединяет файлы, виртуальные или реальные.
join
без временного файла, но только прояснить читателю:cat f1 f2
не производит тот же вывод какjoin f1 f2
– Peter.O 08.09.2011, 06:04join
в моем примере, потому что я играл с ним прежде; в действительности для моего примера я использовалcat
. – 0x4B1D 08.09.2011, 15:38