Mój alias .bashrc nie działa w pliku .desktop

19

Dodałem następujący wiersz do .bashrcpliku:

alias midos="sh /home/erkanmdr/Belgeler/midos/midos.sh"

To polecenie działa dobrze w terminalu i tty. Ale nie działa w moim pliku skrótu .desktop.

plik midos.desktop:

[Desktop Entry]
Name=MiDoS
Exec=midos
Icon=/home/erkanmdr/Belgeler/midos-128.png
Terminal=true

Jak wykonać midospolecenie w pliku skrótu .desktop?

ErkanMDR
źródło
Można po prostu zastąpić Exec=midoszExec=sh /home/erkanmdr/Belgeler/midos/midos.sh
c0rp
Nie chcę tego. Chcę użyć bezpośrednio. To jest możliwe?
ErkanMDR,
1
Chciałbym zamienić shz bash(alias midos = "bash /home/erkanmdr/Belgeler/midos/midos.sh")
Sylvain Pineau
@SainainPineau nie działa
ErkanMDR

Odpowiedzi:

24

Podczas gdy inne odpowiedzi stanowią dobre obejście problemu, aby odpowiedzieć na twoje pytanie, właściwym sposobem na użycie aliasu w pliku .desktop jest w twoim przypadku:

Exec=bash -ic "midos"

Wynika to z faktu, że aliasy z ~/.bashrcpliku będą działać tylko w interaktywnej powłoce bash ( -iw tym przypadku opcja jest używana do uruchomienia interaktywnej bash).

Jeśli inny użytkownik chce użyć tego samego pliku .desktop, musi także zdefiniować ten alias.

Radu Rădeanu
źródło
Świetny! Dokładnie tego szukałem. Dziękuję bardzo
ErkanMDR,
6

Byłbym bardzo zaskoczony, gdyby GUI miał pojęcie o twojej powłoce. Powinieneś umieścić pełną ścieżkę w pliku pulpitu:

Exec=/home/erkanmdr/Belgeler/midos/midos.sh

I upewnij się, że twój skrypt jest wykonywalny.

Glenn Jackman
źródło
6

Małe obejście.

Dodaj to #!/bin/bashdo pierwszego wiersza skryptu, jeśli jeszcze go nie ma.

Na przykład twój skrypt wcześniej:

sometext1
sometext2
sometext3
sometext4

Skryptujesz po:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4

Teraz skopiuj skrypt do /usr/local/bini wykonaj go:

sudo cp /home/erkanmdr/Belgeler/midos/midos.sh /usr/local/bin/midos
sudo chmod +x /usr/local/bin/midos

Następnie powinno działać tak, jak chcesz.

c0rp
źródło