Запуск нескольких новых терминалов из терминала - PullRequest
0 голосов
/ 09 октября 2019

Я пытался найти решение, но я не знаю, как это сделать. Я хочу запустить терминал на Raspberry Pi X раз, чтобы запускать скрипты Python в Paralel.

Я пытался gnome-terminal или xterm, но ничего не делал, что я хотел или писал команду не найдено.

Этот cmd:

#!/bin/bashint
for word in $(cat inputs.txt); do python3 enttest.py $word; done

Эта команда получает каждую строку из файла inputs.txt и передает ее в качестве параметра скрипту Python, который выполняется в течение x часов (одна строка, один параметр). Мне нужно, чтобы запустить терминал x в зависимости от количества строк в файле inputs.txt. Я хочу это автоматически, потому что входы будут сгенерированы / динамические. Сценарий очень прост, и я вручную запустил 12 терминалов, которые отлично работали на медленной малине. Входной файл может выглядеть следующим образом:

input1
input2

Никаких сумасшедших вещей с такими вводами, как пробел или специальный символ. В будущем у меня будет больше параметров во входных файлах, но они могут быть разделены разделителем. Спасибо.

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете сделать это без запуска новых терминалов. Если вы сделаете это:

#!/bin/bashint
for word in $(cat inputs.txt)
    do python3 enttest.py "$word" &
done

bash выполнит сценарии параллельно (создаст новый процесс для каждого вызова) из-за одного амперсанда (&) после команды.

Таким образом, программа должна выполняться довольно быстро, и тогда задачи python3 enttest.py будут работать в фоновом режиме.

Подробнее об этом можно прочитать здесь: https://bashitout.com/2013/05/18/Ampersands-on-the-command-line.html

...