На этот вопрос уже есть ответ здесь:
Прочитав ответ о том, как заставить файл выполнять команду в терминале при запуске, я попытался сделать это сам.
Я создал новый документ, ввел следующие данные и сохранил.
#! /bin/bash
echo "this is a test"
Затем я зашел в Правый клик > Свойства > Разрешения
и установил флажок "Разрешить выполнение файла как программы."
Однако, когда я дважды щелкаю по документу, он просто открывается в моем текстовом редакторе (который, как я полагаю, является gedit). В меню правой кнопки мыши я не вижу опций для запуска файла в терминале.
Я пробовал делать это и с другими файлами. Например, я установил WINE и попытался установить программу Виндовс. WINE сказал просто запустить программу установки, но ничего не произошло, когда я попытался. Я пометил его для запуска как программу, но он все равно не работал. Я смог установить его, только щелкнув правой кнопкой мыши > OpenWith
и выбрав WINE.
Как ни странно, я скопировал папку Keepass-2.28 Portable с раздела Windows на раздел Ubuntu и попробовал запустить исполняемый файл. Keepass сразу же запустился, хотя я не пометил этот файл для запуска в качестве программы. У меня в системе установлен Keepass 2.25 из репозитория, если это имеет значение.
Я использую Ubuntu 14.04 с двойной загрузкой в течение нескольких недель. Единственное, что я могу предположить, что я сделал, чтобы все испортить, это использовал диспетчер пакетов Synaptic для удаления пакета KDE Desktop Environment
в попытке удалить альтернативное окружение рабочего стола, которое я установил через терминал. Я не помню, что это был за пакет, но единственный пакет в этой категории сейчас - appmenu-qt5
. Насколько я могу судить, удаление этого пакета ни на что не повлияло, и я уверен, что у меня были проблемы с запуском файлов как программ с тех пор, как я получил свой Ubuntu.
EDIT: Я проверил, и я не думаю, что этот вопрос является дубликатом этого вопроса. Моя Ubuntu находится на разделе ext4, и именно оттуда я пытаюсь запустить программы. Я также не пытался изменить разрешения через терминал или что-то в этом роде, я просто пытаюсь заставить программу запускаться, когда я отмечаю опцию в меню свойств. Пожалуйста, поправьте меня, если я ошибаюсь или что-то упустил.
Справка в Right-Click > Properties > Permissions
объясняет это поведение:
, Если файл является программой, такой как сценарий, необходимо выбрать, Позволяют выполнять файл как программу для выполнения его. Даже с этой выбранной опцией, файловый менеджер может все еще открыть файл в приложении или спросить Вас, что сделать. Посмотрите Исполняемые текстовые файлы для получения дополнительной информации.
действие по умолчанию при двойном щелчке по сценарию должно открыть его в редакторе. Изменить эту опцию:
Нажимают Files в Средстве запуска, выбирают Edit > Preferences
и затем вкладка Behavior:
Выбор действие по умолчанию при открытии исполняемого текстового файла:
, "Спрашивают, каждый раз" является, вероятно, правильной установкой здесь, поскольку Вы, конечно, не хотите случайно выполнять сценарий, когда Вы просто хотите открыть текстовый файл, тем более, что исполняемые и неисполняемые текстовые файлы совместно используют тот же значок.
Я подозреваю, что необходимо изменить настройки для файлового менеджера так, чтобы он или выполнил сценарий удара непосредственно или спросил Вас, если Вы хотите выполнить сценарий или отобразить код.
я не знаю, работает ли текущая версия файлового менеджера Ubuntu тот же путь, но несколько лет назад, фиксация была следующие:
"Открывают файловый менеджер Наутилуса и нажимают на колесо механизма (Опции Местоположения) в верхнем правом углу окна. Перейдите к Предпочтениям †“Предпочтения Файла †“Поведение †“Исполняемые Текстовые файлы. Ряд переключателей позволяет опции по умолчанию быть установленной. Мое предпочтение является для “Ask каждым time”. Затем когда я дважды щелкаю по файлу сценария, мне дают опцию или выполнения сценария или отображения (редактирования) его содержания".
(См.: https://linuxnorth.wordpress.com/2013/11/02/running-bash-scripts-in-ubuntu / )
Редактирование : Это решение будет работать на единственные файлы, но если Вы заботитесь об изменении этого поведения в масштабе всей системы (т.е. для каждого исполняемого текстового файла), проверяете другие ответы.
<час> необходимо будет создать .desktop
файл для выполнения сценария прямо от Nautilus
:
.desktop
файл на желаемом местоположении: gedit /<path_to_dektop_file>/test.desktop
chmod u+x /<path_to_dektop_file>/test.desktop
Код:
[Desktop Entry]
Type=Application
Name=Test
Exec=/<path_to_shell_script>/test.sh
Тогда просто дважды щелкают .desktop
созданный файл.