Как выполнить скрипт, просто дважды щелкнув, как.EXE-файлы в Windows?

Как сделать исполняемый скрипт bash двойным щелчком, как .exe файлы в винде? Я попытался создать модуль запуска и назначить ему скрипт, но есть два последствия:

  1. терминал мерцает, исчезает, и ничего не делается.
  2. Вы должны указать, чтобы работать в терминале, чтобы работать.

У меня есть сценарий, который устанавливает 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'

Примечание. Файл должен быть исполняемым. Вам также может понадобиться изменить разрешение файла. Щелкните правой кнопкой мыши и установите "Разрешить выполнение файла как программы"

Источник

На Наутилусе (файлы АКА)

  1. Перейдите в Файлы (Изменить на Unity (17.04 или ниже)) > Предпочтения> вкладка Поведение

  2. Измените настройки для исполняемого текстового файла.

Я думаю, что создание файла *.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:

  1. Откройте файлы (сейчасNautilus называется " Файлы"), щелкните гамбургер-меню и выберите " Настройки".

https://ask-ubuntu.ru/images/89656678ca427a057f33544be28cdd4b8b a98ccd.png

  1. Перейдите на вкладку "Поведение" и выберите подходящийвариант в разделе "Исполняемые текстовые файлы".

В Ubuntu и во всех ОС Unix, afaik, по умолчанию ничего не установлено как исполняемый. Есть два способа сделать это.

  1. Щелкните правой кнопкой мыши сценарий или файл, который вы хотите выполнить. Перейдите в Свойства, затем на вкладку Разрешения. Установите флажок "Выполнить".

  2. Откройте Терминал 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
  • Файловая система должна разрешать выполнение:

    1. Тип mount в консоли
    2. Проверьте, имеет ли ваша файловая система noexec флаг
    3. Удалить 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, и вы можете увидеть на рабочем столе и после перезагрузки системы.

Спасибо.:)

Другие вопросы по тегам