Скажем, мне нужно написать скрипт, который запустит терминал и выполнит команду, и мне это нужно для работы на разных системах. Как я могу сделать это безопасным и портативным способом?
Является ли xterm
всегда установлен? Я предполагаю, что любой * nix с графическим интерфейсом должен иметь эмулятор терминала. Как я могу добраться до этого? Системы Debian имеют, x-terminal-emulator
но это, по-видимому, даже не работает в Red Hat, не говоря уже о не Linux * nixes.
terminal-emulator
portability
Тердон
источник
источник
expect
expect
? Как? Попросив пользователя ввести свой терминал?Ответы:
Я не думаю, что ты можешь.
xterm
Не нужно устанавливать везде, и, вероятно, не по умолчанию. Особенно, когда используется среда рабочего стола, которая предоставляет собственный терминал.Я думаю , вам лучше всего, вероятно , чтобы проверить наличие нескольких различных терминалов (скажем,
xdg-terminal
,x-terminal-emulator
,gnome-terminal
,konsole
,xterm
). И, возможно, работать над добавлением xdg-терминала в стандарты FreeDesktop.org.Затем вы обнаружите, что разные терминалы имеют разные способы запуска команд, а иногда даже разные версии одного и того же терминала ... например, смотрите Debian Bug # 648271 .
Вы, вероятно, также должны дать администратору / пользователю способ установить пользовательскую команду. Это наверняка понадобится.
источник
case
утверждений.xinit
? Это не делалось годами, но для загрузки простого X-сервера использовалось пустоеxterm
(?) Окно, из которого вы могли бы начать сеанс. Не означает ли это, что какой-то эмулятор терминала установлен вместе с X?Да, вам нужно использовать обертку. В i3 WM есть хороший. Объясняется здесь: http://build.i3wm.org/docs/i3-sensible-terminal.html
Просто скопируйте это в функцию оболочки в вашем скрипте: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal
источник
which
что является плохой идеей )