Если все, что вы хотите, это запускать команды в фоновом режиме / параллельно, без синхронного ожидания завершения каждой команды до начала следующей, завершите их амперсандом &
, чтобы указать оболочке сделать это.
Кроме того, вы можете выполнять команды в их собственных подоболочках, заключив каждую в круглые скобки (
)
. Если это долго работающие процессы или вы не хотите загрязнять исходную оболочку своим выводом, вы можете разветвить их и записать их вывод в файл с чем-то вроде (setsid command 1>/path/to/log &)
.
Если необходимы отдельные вкладки, вы можете использовать xdotool
для привязки переключателя к следующей вкладке или аналогичной, а затем ввести команды, которые вы должны выполнить на этой вкладке.
Вместо того, чтобы разбираться в этом беспорядке самостоятельно, вы можете использовать скрипт из этого ответа Джейкоба Влийма, который оборачивает оконный подход, который использует xdotool
и wmctrl
для «отправки» команд в разные окна терминала. Скрипт написан на python 3, но его можно легко переписать для выбранной среды оболочки.
Более прямой подход предполагает использование TIOCSTI ioctl
для ввода символов в другой терминал. Согласно странице руководства tty_ioctl
:
NAME
ioctl_tty - ioctls for terminals and serial lines
...
DESCRIPTION
The ioctl(2) call for terminals and serial ports accepts many possible
command arguments.
...
Faking input
TIOCSTI const char *argp
Insert the given byte in the input queue
...
Вот c и perl и пример в python, как указано в этом ответе.
person
pkfm
schedule
25.11.2019