Как открыть дополнительную консоль и запустить в ней программу одной командой?
Так что я знаю, что если я введу gnome-терминал или xterm, появится новое окно. Затем я проверил справочную страницу для этих двух, ничего релевантного не нашел.
Тогда я заметил, что под Mac вы можете сделать это с открытой программой. Но, похоже, под Linux это не так тривиально.
У кого-нибудь есть опыт?
4 ответа
Я бы предпочел использовать опцию -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.
Обновление: -x/-e синтаксис теперь устарел - Ubuntu 18.04. Новый рекомендуемый способ:
gnome-терминал - bash -c "<моя команда или скрипт>; exec bash"
- Если вы хотите получить доступ к домашнему каталогу пользователей с помощью вышеуказанной команды, используйте переменную среды
$HOME:bash -c "cd $HOME/; ..."
Еще примеры использования этого формата:
- Откройте новый терминал и исходные скрипты
- Запустите gnome-терминал из сеанса SSH в сеанс рабочего стола
- Запустить определенный терминал при запуске
- Программа Crontab и C, которая должна быть выполнена в окне терминала
- Xdotool не минимизирует окно терминала при использовании в Startup Application при загрузке ПК?
Другой подход, который будет держать окно открытым, заключается в использовании xterm:
xterm -hold -e cmd
Опция удержания держит окно открытым.
gnome-terminal -e cmd откроет окно терминала и запустит cmd внутри.
Вы можете просто сделать CTRLALTT, и вы откроете новый терминал.
Пытаться gnome-terminal -e "bash -c command;bash"