Запустите несколько отдельных экранов с циклом for, каждый с командой с также циклом for - PullRequest
1 голос
/ 20 сентября 2019

Я пытаюсь написать однострочник, который использует forloop для запуска нескольких экранов (так, параллельно), где на каждом экране запускается другой цикл for (так, последовательно).

Буду признателен за любую помощь

Я пытаюсь использовать цикл for, который создает именованные экраны (screen -dmS), за которым следует screen -x NAME -X $ somecommand, где $ somecommand -сам по себе, в котором есть циклы for, но он еще не работает полностью.

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

for b in $(seq -s ' ' 0.000 0.005 0.020); do command="for s in {1..3}; do for h in $(seq -s ' ' 0.000 0.010 0.030); do ./MultiGene -s $s -b $b -h ${h} -m 0.0 -u 0.0 -l 0.02 -name WM ${h}_b${b} -mix -w 0.3; done; done;"; screen -dmS "b${b}"; screen -x "b${b}" -X $command; done

Теперь, это не дает мне ни единой ошибки, и экраны запускаются, но внутри экранов ничего не происходит.Поэтому второй бит, в котором я использую -X, кажется, не работает (хотя обычно это дает ошибку?)

Я хочу, чтобы все запущенные экраны фактически запускали свой собственный цикл for.

Ура!

PS Я знаю, что есть много других способов сделать это, но сейчас я действительно хочу решить эту головоломку;)

...