Jak mogę uruchomić aplikację w bardziej wygodny sposób?

9

Jestem nowy w Ubuntu. Mam aplikację, którą otwieram w następujący sposób. Piszę w konsoli:

cd ~/MyDirectory
./myapp +some arguments

Jak znaleźć rozwiązanie, aby móc uruchomić aplikację bez wpisywania tych poleceń w konsoli za każdym razem? Mam na myśli skrypt, taki jak skrypt nietoperza lub .lnk w systemie Windows.

W innych podobnych pytaniach nie znalazłem rozwiązania, ponieważ było tylko kilka wzmianek i dyskusji na temat skryptów. Nie znalazłem, jak mogę użyć polecenia „cd” w innych pytaniach, a to pytanie nie jest duplikatem innych, które sugeruję.

nacięcie
źródło
@steeldriver, nie, nie znalazłem rozwiązania na to pytanie. nie ma nic na temat komendy cd i uruchamiania aplikacji za pomocą skryptu.
nick
# 1 Czy chcesz, aby rozwiązaniem była ikona, którą możesz kliknąć na pulpicie, czy też będzie to coś, co musisz / chcesz uruchomić z wiersza poleceń? # 2 Jak często zmienia się argument?
RonJohn
Rozmowa (w tym przypadku bezpiecznie) zakłada, że ​​jest pulpit. Dość często w świecie skryptów nie będzie.
mckenzm

Odpowiedzi:

21

Skrypt jest dość przesadny.

Użyj pliku .desktop, takiego jak:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Zapisz to jako some_app.desktop
  • Spraw, by był wykonywalny i kliknij dwukrotnie

NB

Pytanie brzmi, czy trzeba go uruchomić z własnego katalogu, czy nie. Jeśli nie, polecenie może być jeszcze prostsze:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Jacob Vlijm
źródło
2
Naprawdę dziękuję. .desktopplik wystarcza do tego zadania.
nick
2
@ allo Jeśli OP poprosi o rozwiązanie, które nie jest optymalne dla jego problemu, ale nie wie, że istnieje lepszy, powinieneś dać mu lepsze rozwiązanie jego problemu, jeśli go znasz. Jeśli nie widzisz, że nie rozumiesz, jaka odpowiedź powinna być tutaj.
Jacob Vlijm
1
@dessert Dzięki za edycję.
Być
1
Możesz chcieć pisać ./myapp …zamiast tylko myapp …dlatego, że bieżący katalog, .domyślnie nie jest częścią zmiennej PATH.
PerlDuck,
1
@ allo Możesz dodać własną odpowiedź, jeśli uważasz, że istniejące nie są wystarczające.
Fabby
13

Utwórz plik o następującej treści:

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

Następnie uczyń go wykonywalnym:

chmod u+x scriptname

Teraz możesz wywołać ten skrypt w następujący sposób: /pathtoscript/scriptname

Możesz połączyć to z odpowiedzią przez v010dya i umieścić ten skrypt w dowolnym, binktóry znajduje się w $ PATH, więc możliwe są obie metody wywoływania: w powłoce w dowolnym typie katalogu scriptnamelub użyj skrótu na pulpicie opisanego poniżej. Po prostu zmień /pathtoscriptfaktyczne położenie skryptu.

Utwórz skrót do skryptu, umieść go ~/.local/share/applications/i nadaj mu nazwę somename.desktop o następującej treści:

[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

Następnie pojawi się na liście aplikacji

LeonidMew
źródło
1
Twoja odpowiedź działa, dziękuję. Ale naprawdę przepraszam, skrypt jest zbyt trudny, nie wiedziałem o tym. Moja odpowiedź była konkretna, ale nie polegała jedynie na znalezieniu rozwiązania. Daję ci +1.
nick
1

Chociaż już znalazłeś rozwiązanie, które możesz kliknąć dwukrotnie, istnieje rozwiązanie, które sprawia, że ​​uruchamianie z wiersza poleceń jest bardziej trywialne:

Krok 1 - Napisz skrypt

To jest już objęta odpowiedź z LeonidMew , ja go skopiować tutaj:

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

i wtedy

chmod u+x scriptname

Krok 2 - Ułatwienie wykonania

Musisz stworzyć katalog ~/bini sprawić, by bash szukał poleceń. Więc w terminalu piszemy:

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

Tutaj robię wszystko w terminalu, możesz oczywiście utworzyć katalog dirw katalogu domowym, a także przenieść tam swój skrypt za pomocą narzędzi graficznych, z którymi czujesz się komfortowo. Używam również vima jako edytora, ale jest to trochę trudne dla początkujących, radzę się uczyć, ale możesz po prostu użyć innego edytora (nawet graficznego) do edycji .profilew katalogu domowym, pamiętaj, że ten plik jest domyślnie ukryty.

Musisz dodać następujące elementy na końcu tego pliku

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

Jeśli używasz vima , naciśnij, iaby rozpocząć dodawanie tekstu, a następnie, Escaby zakończyć dodawanie. Następnie wpisz, :wqaby zapisać plik i wyjdź. Lub, jak już powiedziałem, użyj prostszego edytora.

Krok 3 - Ciesz się

Teraz nie będzie miało znaczenia, w jakim katalogu się znajdujesz, zawsze możesz po prostu pisać scriptnamei naciskać Enter. Możesz także umieścić inne skrypty i aplikacje, w których chcesz być wykonywalny ~/bin.

v010dya
źródło
1
Napisałeś, jak wyjść z vima, +1 Tylko żartuję, fajna odpowiedź. Twoje rozwiązanie jest przydatne. Nadal można utworzyć plik .desktop, aby uruchomić skrypt z listy aplikacji lub menu (w zależności od wersji DE). Po poprawce wymagane jest wylogowanie / zalogowanie się .profile. Również home można zamontować z opcją noexec, w tym przypadku konieczne jest umieszczenie skryptu w / usr / local / bin / (using sudo).
LeonidMew