На Mac OS X, когда Вы дважды щелкаете по .sh файлу, Окно терминала открывается, запуская скрипт и позволяя мне взаимодействовать с ним.
На Ubuntu, путем двойного щелчка по сценарию, я сразу вижу его эффекты: сценарий, работал. Только это, когда я запускаю его тот путь, никакое окно командной строки, открывается. Несомненно, я могу просто запустить скрипт от Терминала, но было бы здорово просто иметь папку Scripts, где они организованы в подпапках и дважды щелкают по сценариям для запуска их как Окон терминала. Обратите внимание, что я не готов создать Средство запуска (.desktop
файл), но я хотел бы применить это глобально.
Сценарий ниже соединяет несколько идей как gnome-terminal
и bash
оболочка работает, для создания щелчка правой кнопкой menuentry для того, чтобы запустить выбранную программу в графическом терминале. Конечно, это не двойной щелчок через мышь, но все еще применимое и быстрое решение. Это может быть еще более быстро через щелчок правой кнопкой и совершающий нападки S ключ для быстрого вскакивания в подменю "Scripts". Кроме того, это может работать с несколькими выбранными файлами и откроет окно терминала для каждого из них.
Предположим, что у нас есть сценарий тестера (который просто печатает "Привет Мир" и выходы) в некотором каталоге, открытом с Наутилусом. Позволяет предполагают, что этот сценарий уже имеет исполняемые полномочия. Щелкните правой кнопкой по файлу, выберите Сценарии-> run_with_terminal.py
Окно терминала будет появляться, и соответственно давать вывод и ожидать, пока пользователь не совершит нападки, Входят в выход.
Также доступный на GitHub
#!/usr/bin/env python
from os import path
from sys import argv
from subprocess import call
for item in argv[1:]:
full_path = path.abspath('./' + item)
call(['gnome-terminal','-e',
"bash -c '" + full_path + ";read'"])
#!/usr/bin/env python
from os import path
from sys import argv
from subprocess import call
for item in argv[1:]:
full_path = path.abspath('./' + item)
call(['gnome-terminal','-e',
"pkexec bash -c '" + full_path + ";read'"])
Терминал Gnome (который является терминалом по умолчанию на Ubuntu) позволяет выполнять команду с -e
флаг, но проблема - то, что она ожидает команды для выхода. Если у Вас будут сценарий или исполняемый файл, который только печатает что-то на экран и сразу выходит, то Вы будете только видеть, что окно терминала высвечивается и исчезает.
По существу это позволяет только выполнять одну команду. С другой стороны, если мы используем bash -c 'command1;command2;command3'
, это будет рассматривать терминал гнома как одну команду, но позволило бы нам на самом деле выполнять несколько как дочерние процессы bash
оболочка. Это не ничто нового и было показано значительно прежде.
Наконец, для хранения окна от непосредственного выхода мы используем read
управляйте, чтобы просто читал stdin
. Основное использование для этого должно позволить пользователю закрывать окно путем удара клавиши Enter (вид адаптированного приема от использования getch()
от C, программирующего в IDE)
Файловый менеджер (иначе Наутилус) позволяет использование пользовательских сценариев (помещенный в '~/.local/nautilus/scripts), которые работают на выбранный файл/папку. Они доступны от щелчка правой кнопкой по файлу и выбора соответствующей записи в подменю Scripts.
Таким образом соединяя все это знание, мы получаем рабочий сценарий, который Вы видите выше. Python был просто предпочтительным языком для меня, но эта та же идея, возможно, была реализована в любом жемчуге, рубине, сценарии оболочки, и т.д.