Как мне запускать команды в новых терминалах в BASH script

my bash script читает несколько переменных, а затем запускает airodump в моей домашней сети. Я хотел бы сохранить окно с запуском airodump и открыть некоторые новые терминалы для запуска других команд для обнаружения сети, пока экран airodump открыт (так что я могу видеть результаты).
прямо сейчас, что у меня похоже (отредактировано для краткости):

#!/bin/bash
read -p "Enter the channel: $channel"
airomon-ng start wlan0 $channel,$channel
airodump-ng -c $channel,$channel mon0 &&
terminator -e netstat -ax &&
terminator -e nmap 192.168.1.1

первая команда, которая использует весь терминал (airodump), запускается нормально, и я вижу сеть, но затем она просто остается на этом экране. Если я ctrl + c, то он возвращается к подсказке, но я вижу ошибку: Использование: terminator [options] error no this option
Я хочу, чтобы команды netstat и nmap отображались и оставались в их собственных терминальных окнах, как я могу это сделать?

Ответ 1

Окно терминала создается отдельной программой из командной строки внутри. Попробуйте один из следующих вариантов:

xterm -e airomon-start wlan0 "$channel","$channel" &

gnome-terminal -x airomon-start wlan0 "$channel","$channel" &

konsole -e airomon-start wlan0 "$channel","$channel" &

Выберите команду, которая вызывает нужную вам программу терминала. Вам нужно будет сделать это для каждой команды, которую вы хотите запустить в своем окне. Кроме того, вам нужно использовать одиночный & в конце каждой такой командной строки, а не двойной && - это совершенно разные вещи. И последняя строка вашего script должна быть просто

wait

из-за чего он не выходит из-под всех терминалов, что может привести к их смерти.

Обязательный тангенциальный shell-scripting nitpick: ВСЕГДА добавьте переменную оболочки в двойные кавычки, если вы не знаете, что вам нужно разделить слово на конкретное использование.

Ответ 2

Если script запущен на переднем плане в терминале, он будет приостанавливаться, пока интерактивная команда использует терминал. Вы можете изменить script, чтобы запустить airodump в новом терминале, или вы могли бы запускать фоновые команды, прежде чем запускать airodump (возможно, после сна, если вы обеспокоены, они не будут работать правильно, если сначала запустите?)