Интерактивное выполнение bash-кода с использованием флага -c (с | & и экраном gnu) - PullRequest
0 голосов
/ 23 мая 2019

Прежде чем мы перейдем к сорнякам: я решил использовать 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 не верен.

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

Спасибо

...