Який найбільш портативний метод запуску емулятора терміналу?


14

Скажіть, мені потрібно написати сценарій, який запустить термінал і виконає команду, і мені це потрібно для роботи в різних системах. Як я можу це зробити безпечним і портативним способом?

Чи xtermзавжди встановлено? Я припускаю, що будь-який * nix з GUI повинен мати якийсь термінальний емулятор. Як я можу дістатись до нього? Системи Debian мають, x-terminal-emulator але це, мабуть, навіть не працює в Red Hat, не кажучи вже про не-Linux * nixes.


Це можливо зробити зexpect
Червоний крикет

@RedCricket expect? Як? Запросивши користувача ввести його термінал?
тердон

.. Цікаво, навіщо вам це потрібно робити? Можливо, ми можемо запропонувати альтернативне рішення.
user606723

@ user606723 основна цікавість, цікаво, чи є така річ, як емулятор терміналу за замовчуванням, визначений POSIX або визначеним opendesktop (схоже, відповідь - ні). Реакція на це питання СУ спричинилася.
terdon

вам дійсно потрібно запустити термінальний емулятор, чи вам справді просто потрібно отримати оболонку. Тут зовсім інша потреба.
Лі Лі Райан

Відповіді:


10

Я не думаю, що ти можеш. xtermне потрібно встановлювати скрізь, і, мабуть, не за замовчуванням Особливо, коли використовується настільне середовище, яке забезпечує власний термінал.

Я думаю , вам краще всього, ймовірно , щоб перевірити наявність декількох різних терміналів (скажімо, xdg-terminal, x-terminal-emulator, gnome-terminal, konsole, xterm). І, можливо, працювати над тим, щоб xdg-термінал був фактично доданий до стандартів FreeDesktop.org.

Тоді ви дізнаєтесь, що різні термінали мають різні способи виконання команд, а іноді навіть різні версії одного терміналу ... наприклад, див. Debian Bug # 648271 .

Напевно, ви також повинні дати адміністратору / користувачеві спосіб встановити власну команду. Це, безумовно, знадобиться.


Так, це викликало запитання щодо SU, і я сподівався, що це буде простіший спосіб, ніж купа caseтверджень.
тердон

1
@terdon Я думаю, що найпростішим способом було б перерахувати досить терміновий термінал залежності як вимогу до сценарію, а потім просто використовувати його.
дероберт

Як щодо того термінального вікна, яке раніше з'являлося, коли я бігав xinit? Так не робили в роках, але це використовувало для завантаження простого X-сервера з порожнім xterm(?) Вікном, з якого ви могли розпочати сеанс. Чи це не означає, що якийсь термінальний емулятор встановлений із X?
terdon

@terdon це було раніше, але тоді люди xorg розділили X на купу пакетів. (Цей термінал був, мабуть, xterm). Але швидка перевірка показує, що я міг би видалити xterm зі своєї системи, якщо хочу.
дероберт

@terdon Це xterm, традиційний емулятор терміналу X за замовчуванням. Але це може бути не завжди встановлено. Установка Ubuntu IIRC за замовчуванням включає лише gnome-термінал, а не xterm (а для Kubuntu це буде konsole тощо).
Жил "ТАК - перестань бути злим"

3

Так, вам потрібно використовувати обгортку. Є хороший з i3 WM. Пояснено тут: http://build.i3wm.org/docs/i3-sensible-terminal.html

Просто скопіюйте це у функцію оболонки у своєму сценарії: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal


Це хороший старт (+1), але перевіряється лише обмежена кількість терміналів (і використовує, whichщо це погана ідея )
terdon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.