Как я могу запустить свое приложение более удобным способом?

9

Я новичок в Ubuntu. У меня есть приложение, которое я открываю следующим образом. Я набираю в консоли:

cd ~/MyDirectory
./myapp +some arguments

Как я могу найти решение, чтобы я мог запустить свое приложение, не вводя эти команды в консоли каждый раз? Я имею в виду сценарий, как bat-сценарий или .lnk в Windows.

В других подобных вопросах я не нашел решения, потому что было только упоминание и обсуждение сценариев. Я не нашел, как я могу использовать команду «cd» в других вопросах, и этот вопрос не дублирует другие, которые я предлагаю.

Ник
источник
@steeldriver, нет, я не нашел решения по этому вопросу. нет ничего о команде cd и запуске приложения через скрипт.
ник
# 1 Хотите ли вы, чтобы решением был значок, который вы можете щелкнуть на рабочем столе, или это будет то, что вам нужно / нужно запустить из командной строки? # 2 Как часто изменится аргумент?
RonJohn
Разговор (в данном случае безопасно) предполагает наличие рабочего стола. Довольно часто в мире сценариев не будет.
Маккензм

Ответы:

21

Сценарий довольно излишним.

Используйте файл .desktop, например:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Сохранить как some_app.desktop
  • Сделайте его исполняемым и дважды щелкните

NB

Вопрос в том, нужно ли его запускать из собственного каталога или нет. Если нет, команда может быть даже проще:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Якоб Влейм
источник
2
Большое спасибо. .desktopфайла достаточно для этой задачи.
ник
2
@allo Если ОП просит решение, которое не является оптимальным для его проблемы, но он не знает, что существует лучшее решение, вы должны дать ему лучшее решение для своей проблемы, если вы его знаете. Если вы не видите, что вам не хватает того, что ответ должен быть здесь.
Джейкоб Влейм
1
@dessert Спасибо за редактирование. Возможно, нам придется иметь дело с путями с пробелами :)
Джейкоб Влейм
1
Возможно, вы захотите написать ./myapp …вместо того, чтобы просто myapp …потому, что текущий каталог .по умолчанию не является частью переменной PATH.
PerlDuck
1
@allo Пожалуйста, не стесняйтесь добавлять свой ответ, если вы считаете, что существующих недостаточно.
Fabby
13

Создайте файл со следующим содержанием:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

Затем сделайте его исполняемым:

chmod u+x scriptname

Теперь вы можете назвать этот скрипт так: /pathtoscript/scriptname

Вы можете объединить это с ответом по v010dya и поместить этот скрипт в любой, binкоторый находится в $ PATH, так что возможны оба вызывающих метода: в оболочке в любом типе каталога scriptnameили используйте ярлык на рабочем столе, описанный ниже. Просто измените /pathtoscriptфактическое размещение сценария.

Создайте ярлык для сценария, поместите его ~/.local/share/applications/и назовите его как somename.desktop со следующим содержимым:

[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false

Тогда он появится в списке приложений

LeonidMew
источник
1
Ваш ответ работает, спасибо. Но очень жаль, сценарий слишком сложный, я не знал об этом. И мой ответ был конкретным в сценарии, а не в нахождении какого-либо пути решения. Я буду +1 к тебе.
ник
1

Хотя вы уже нашли решение, на которое можно дважды щелкнуть, есть решение, которое упрощает запуск из командной строки:

Шаг 1 - Написать скрипт

Это уже охвачено ответом на LeonidMew , я буду копировать его здесь:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

а потом

chmod u+x scriptname

Шаг 2 - Сделать это легко выполнить

Вам нужно создать каталог ~/binи заставить bash искать его по командам. Итак, в терминале мы пишем:

mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile

Здесь я делаю все в терминале, вы, конечно, можете создать каталог dirв вашем домашнем каталоге, а также переместить свой скрипт туда с помощью графических инструментов, с которыми вам удобно. Также я использую vim в качестве редактора, но для начинающих это немного сложно, я бы посоветовал вам научиться, но вы можете просто использовать другой редактор (даже графический) для редактирования .profileвнутри вашей домашней директории, обратите внимание, что этот файл по умолчанию скрыто

Вам нужно добавить следующее в конец этого файла

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Если вы используете vim, вы нажимаете, iчтобы начать добавление текста, а затем, Escчтобы закончить добавление. После этого вы вводите, :wqчтобы записать файл и выйти. Или, как я уже сказал, используйте более простой редактор.

Шаг 3 - Наслаждайтесь

Теперь не имеет значения, в каком каталоге вы находитесь, вы всегда можете просто набрать scriptnameи нажать Enter. Вы также можете разместить другие скрипты и приложения, в которых вы хотите быть исполняемыми ~/bin.

v010dya
источник
1
Вы написали, как выйти из vim, +1 Просто шучу, хороший ответ. Ваше решение полезно. Еще можно создать файл .desktop, запустить скрипт из списка приложений или из меню (в зависимости от DE). После установки патча .profile требуется выход из системы / логин. Также home можно смонтировать с помощью опции noexec, в этом случае необходимо поместить скрипт в / usr / local / bin / (используя sudo).
LeonidMew