12

Я пытаюсь написать команду, которая запустит несколько вкладок терминала, выполнит что-то на каждой вкладке и оставит каждую вкладку открытой после завершения команды, чтобы я мог посмотреть на вывод и набрать больше команд на каждой вкладке.

что-то вроде этого:

gnome-terminal --tab -e "ls -a" --tab -e "ls"

но проблема в том, что вкладки закрываются, как только заканчиваются команды "ls". Кто-нибудь знает, как заставить вкладки оставаться открытыми?

2 ответа2

11

Gnome-терминал может либо выполнить команду, либо открыть оболочку, но не оба одновременно.

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

$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""

Для большего количества альтернатив прочитайте мой ответ на подобный вопрос о переполнении стека: https://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution/3531426#3531426

10

Если у вас установлены xdotool и wmctrl , то может работать следующий скрипт оболочки:

#!/usr/bin/env bash

window="$(xdotool search --class gnome-terminal | head -1)"
xdotool windowfocus $window
xdotool key ctrl+shift+t
xdotool type "$*"
xdotool key Return

Я использую это так:

$ run-in-new-tab 'ls -l'

Я нашел эту идею в блоге Trustin Lee.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .