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?


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.


Ś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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.