Как выполнить скрипт, просто дважды щелкнув, как.EXE-файлы в Windows?
Как сделать исполняемый скрипт bash двойным щелчком, как .exe
файлы в винде? Я попытался создать модуль запуска и назначить ему скрипт, но есть два последствия:
- терминал мерцает, исчезает, и ничего не делается.
- Вы должны указать, чтобы работать в терминале, чтобы работать.
У меня есть сценарий, который устанавливает tomcat на автономный ПК, включая все зависимости tomcat в сценарии. Мне нужно, чтобы скрипт работал по двойному щелчку, как окна, так как большинство пользователей, использующих скрипт, не будут знакомы с Ubuntu.
Забудьте приведенное выше объяснение. Я хочу сделать скрипт, который можно запустить, дважды щелкнув по нему, без использования терминала. Кто-нибудь знает как?
13 ответов
Я проверил это, и он работал нормально. Убедитесь, что ваш сценарий начинается с правильного шебанга, например #!/usr/bin/env bash
,
Затем выполните следующие действия:
- Нажмите Alt + F2, чтобы запустить команду.
- Тип
dconf-editor
и нажмите Enter. - В dconfg-editor перейдите по ссылке:
org ➤ gnome ➤ nautilus ➤ preferences
Нажмите на
executable-text-activation
и из выпадающего меню выберите:launch: запускать скрипты как программы.
ИЛИ ЖЕ
спросить: спросить, что делать через диалог.Закройте dconf-редактор. Это оно!
Альтернативный способ, используя терминал: Run:
gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'
Примечание. Файл должен быть исполняемым. Вам также может понадобиться изменить разрешение файла. Щелкните правой кнопкой мыши и установите "Разрешить выполнение файла как программы"
На Наутилусе (файлы АКА)
Я думаю, что создание файла *.desktop здесь отсутствует:
$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;
Если вы создаете более одного файла *.desktop для одного сценария, вы можете создавать несколько конфигураций, передавая различные параметры, что является очень удобным и удобным способом.
Для Ubuntu 20.04:
- Откройте файлы (сейчасNautilus называется " Файлы"), щелкните гамбургер-меню и выберите " Настройки".
https://ask-ubuntu.ru/images/89656678ca427a057f33544be28cdd4b8b a98ccd.png
- Перейдите на вкладку "Поведение" и выберите подходящийвариант в разделе "Исполняемые текстовые файлы".
В Ubuntu и во всех ОС Unix, afaik, по умолчанию ничего не установлено как исполняемый. Есть два способа сделать это.
Щелкните правой кнопкой мыши сценарий или файл, который вы хотите выполнить. Перейдите в Свойства, затем на вкладку Разрешения. Установите флажок "Выполнить".
Откройте Терминал
cd
в каталог, где находится файл. Типchmod ugo+x filename
, Это установит файл для выполнения.
Теперь ваши пользователи могут дважды щелкнуть по своему сердцу.
Если вы используете XFce, то можете выполнить скрипт в Thunar, выполнив эту команду:
xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
--create --type bool --set true
или с помощью графического интерфейса xfce4-settings-editor
и создавая то же свойство
Вы должны проверить 3 балла:
- Конфигурация Nautilus / Nemo: /questions/666618/how-do-i-run-executable-scripts-in-nautilus/666628#666628
- Файл сценария должен быть исполняемым: /questions/666618/how-do-i-run-executable-scripts-in-nautilus/666632#666632
Файловая система должна разрешать выполнение:
- Тип
mount
в консоли - Проверьте, имеет ли ваша файловая система
noexec
флаг - Удалить
noexec
пометить редактированием/etc/fstab
и перемонтируйте модифицированную систему (например, перезагрузка работает)
- Тип
Еще в 2023 году мне было трудно запускать скрипты (sh-файлы) на рабочем столе Linux. В моем случае запустите центр конфигурации lxqt из меню, затем «Настройки системы KDE» (или любой другой соответствующий параметр), затем «Приложения», затем найдите «.sh» или x-shellscript , затем в порядке приложений , добавьте ЛЮБОЕ приложение, затем отредактируйте «. top one» и измените все на « вкладке приложения » (в режиме редактирования) на «bash» или «bash -c» или «sh -c» , как вам удобно. Попробуйте это на терминале, напримерbash script.sh
чтобы увидеть, работает ли это.
На основе umask
Значение по умолчанию, у вас нет прав на выполнение файлов по умолчанию, и вы должны изменить мод, чтобы получить права на выполнение, что-то вроде этого:
chmod u+x filename
Когда вы создаете запуск в Desktop для сценария SHEL или чего-либо еще, в командной строке не забудьте указать сценарию, что он будет выполняться в фоновом режиме.
Сценарий умрет, когда он закончит работу.
В качестве дополнения к ответу о Thunar: этот ответ снова включит предыдущую функцию Thunar для выполнения сценариев по двойному щелчку. Но эта особенность считалась угрозой безопасности.
Чтобы избежать этого, возможно, самое элегантное решение - это получить всплывающее окно с вопросом типа "Что вы хотите с этим файлом: запускать или редактировать?" (аналогично тому, что есть в других файловых менеджерах, таких как PCManFM и Nemo) при щелчке по этому файлу - с помощью Zenity: здесь.
Альтернативой могут быть пользовательские действия, возможно, лучшая функция Thunar.
Команда, которую я использую для запуска исполняемого текстового файла: sh -c %f
, для пользовательского действия под названием "Run/Execute script".
Условия появления просто "текстовые":
Аналогичная команда может быть использована для запуска в терминале такого сценария ("Запуск в терминале"), при этом терминал Xfce4 остается открытым:
xfce4-terminal -H -x %f
Необязательно, а может быть предпочтительно, чтобы скрыть такие параметры для всех текстовых файлов, кроме исполняемых, можно ограничить использование внешнего вида .sh
файлы (или .py
файлы, если дело и т. д.), в разделе "Условия появления":
- перед переименованием исполняемых файлов соответственно.
ОС: Linux Mint (я использую 18.3)
Я целую вечность боролся с этим, пытаясь выяснить, как можно щелкнуть (или дважды щелкнуть) исполняемый элемент и запустить его без дополнительных вопросов. Я просмотрел все, что находится в Nemo Edit -> Preferences. Ответ на самом деле очень прост и настроен для вас... Я не знаю, применимо ли это только к Mint.
На рабочем столе щелкните правой кнопкой мыши и выберите "+ Создать здесь новую программу запуска". Затем следует один из простейших диалоговых окон, в котором вы должны выбрать исполняемый файл и хотите ли вы также создать новый элемент в меню "Пуск", то есть запустить его исключительно с клавиатуры.
Фактически это создает простой исполняемый текстовый файл, например
[Desktop Entry]
Comment=
Terminal=true
Name=MyScript
Exec=/media/mike/D_drive/My Documents/sysadmin/MyScript.sh
Type=Application
Для этого файла не обязательно иметь ".desktop" в своем имени.
Этот файл можно использовать где угодно, а не на рабочем столе: переместите / скопируйте его в другой каталог, и он также будет запускаться двойным щелчком в Nemo (или одним щелчком, если Nemo настроен таким образом).
Специально для Android Studio Вы можете следить за моим оригинальным ответом здесь:
Чтобы создать Desktop Launcher:
- Нажмите на
Create Desktop Entry..
из меню инструментов.
Будет предложено ввести пароль, введите пароль вашего текущего логина.
Наконец, на экране Android Studio будет отображаться уведомление, например:
- Вы можете увидеть в Приложениях => Программирование => Android Studio, и вы можете увидеть на рабочем столе и после перезагрузки системы.
Спасибо.:)