как открыть дополнительную консоль и запустить в ней программу одной командой?

как открыть дополнительную консоль и запустить в ней программу одной командой?

Так что я знаю, что если я введу gnome-terminal или xterm, то появится новое окно. Затем я проверил страницу man для этих двух, ничего подходящего не нашел.

Потом я заметил, что под Mac это можно сделать с открытой программой. Но, похоже, под Linux это не так тривиально.

Есть ли у кого-нибудь опыт?

решение1

Обновлять:Новый рекомендуемый синтаксис:

gnome-terminal -- bash -c "<моя команда или скрипт>; exec bash"
  • Если вы хотите получить доступ к домашнему каталогу пользователя с помощью приведенной выше команды, используйте переменную окружения $HOME:bash -c "cd $HOME/; ..."

Если вы посмотрите наman gnome-terminalgnome-terminal --help) параметры -xи -eдоступны (и явно не указано, что они устарели), но все примеры там даны с использованием синтаксиса, представленного выше.


Я бы предпочел использовать вариант -x, который обеспечивает более надежную работу, чем -e:

gnome-terminal -x bash -c "<my command or script>; exec bash"
  • Этот вариант -xозначает--execute - оставшаяся часть командной строки внутри терминала.

  • И наша команда — bash -c "<commands>". Это значит, что мы запускаем новую bashоболочку, которая должна запустить какой-то -c "<commands>".

  • У нас есть два разделенных (точкой с запятой ; == new line) <commands>.

  • Первая команда <my command or script>выполнит то, что нам нужно.

  • Вторая команда exec bashимеет смысл - оставить открытым текущее gnome-terminalокно. Естьдругие возможные подходычтобы сделать это. В текущем случае команда execбудетзаменить текущий образ процесса новым образом процесса- другими словами, он «убьет» текущий процесс и выполнит новый ( bash) под текущим PID.


Еще примеры использования этого формата:

решение2

Другой подход, который позволит держать окно открытым, — использовать xterm:

xterm -hold -e cmd

Опция удержания удерживает окно открытым.

решение3

gnome-terminal -e cmdоткроет окно терминала и запустится cmdв нем.

решение4

Вы можете просто сделать это CTRLALTTи откроется новый терминал.

Пытатьсяgnome-terminal -e "bash -c command;bash"

Связанный контент