Intereting Posts

объединить вывод из двух команд в bash

Можно ли комбинировать выходные данные с этими двумя командами?

node ~/projects/trunk/index.js python ~/projects/trunk/run.py run 

Ни одна из команд не выходит, поэтому я не знаю, как это сделать.

Вы можете комбинировать две команды, группируя их с { } :

 { command1 & command2; } 

пока вы можете перенаправить группу в файл:

 { command1 & command2; } > new_file 

если вы хотите разделить STDOUT и STDERR в двух файлах:

 { command1 & command2; } > STDOUT_file 2> STDERR_file 

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

Код:

( command1 ; command2 ; command3 ) | cat

{ command1 ; command2 ; command3 ; } > outfile.txt

Основное различие между ними состоит в том, что первый разделяет дочерний процесс, а второй работает в контексте основной оболочки. Это может иметь последствия для настройки и использования переменных и других параметров среды, а также производительности.

Не забывайте, что закрывающая скобка в группировке команд (и функциях) должна быть отделена от содержимого точкой с запятой или новой строкой. Это происходит потому, что "}" на самом деле является собственностью команды (ключевое слово) и должно рассматриваться как одно.

Я закончил это, другие предложения не сработали, поскольку вторая команда была либо убита, либо никогда не выполнялась.

 alias app () { nohup python ~/projects/trunk/run.py run 1>/tmp/log 2>&1 & echo $! > /tmp/api.pid nohup node ~/projects/trunk/index.js 1>/tmp/log 2>&1 & echo $! > /tmp/client.pid tail -f /tmp/log } 

Попробуй это:

 paste $(node ~/projects/trunk/index.js) $(python ~/projects/trunk/run.py run) > outputfile