Прежде чем мы перейдем к сорнякам: я решил использовать screen
как очень грубый многопоточный инструмент. Это потому, что мне нравится screen
, это везде, где я забочусь, и это подходит для этой цели.
Я пытаюсь запустить экран get_fileserver_file_from_api
и перенаправить stderr + stdout как на сеанс экрана, так и в текстовый файл.
Команда, которую я хотел бы , является
screen -dmS <generated_session_id> bash -c './get_fileserver_file_from_api <file_uri> -f "<save_directory>" |& tee -a "<save_directory>/downloadlog.txt"'
В настоящее время я не могу понять, как перенаправить вывод из get_fileserver_file_from_api
в <save_directory>/downloadlog.txt
.
Я пробовал
screen -dmS <generated_session_id> bash -c './get_fileserver_file_from_api <file_uri> -f "<save_directory>" |& tee -a "<save_directory>/downloadlog.txt"'
Что дает bash: -c: line 0: syntax error near unexpected token `&'
screen -dmS <generated_session_id> bash -c './get_fileserver_file_from_api <file_uri> -f "<save_directory>"' |& tee -a "<save_directory>/downloadlog.txt"
Который успешно запускает команду, но не сохраняет вывод get_fileserver_file_from_api
в downloadlog.txt
. (Похоже на вывод screen
на выходе)
screen -dmS <generated_session_id> bash -c './get_fileserver_file_from_api <file_uri> -f "<save_directory>" \|& tee -a "<save_directory>/downloadlog.txt"'
, который действует нечетно и также не выводит до downloadlog.txt
screen -dmS <generated_session_id> bash -c './get_fileserver_file_from_api <file_uri> -f "<save_directory>" \|\& tee -a "<save_directory>/downloadlog.txt"'
, который просто передает все в качестве аргумента для get_fileserver_file_from_api
(который затем терпит неудачу, поскольку у него нет опции -a
)
Etc
Либо bash
прямо говорит мне, что у меня неправильный синтаксис, либо downloadlog.txt
не верен.
Я уверен, что это проблема с правильным побегом, но я просто не могу разблокировать его без помощи.
Спасибо