Mein .bashrc-Alias ​​wird nicht in der .desktop-Datei ausgeführt

19

Ich habe der .bashrcDatei die folgende Zeile hinzugefügt :

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

Dieser Befehl funktioniert im Terminal und in tty einwandfrei. Funktioniert aber nicht in meiner .desktop-Verknüpfungsdatei.

midos.desktop Datei:

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

Wie führe ich meinen midosBefehl in der .desktop-Verknüpfungsdatei aus?

ErkanMDR
quelle
Sie können nur Exec=midosmit Exec=sh /home/erkanmdr/Belgeler/midos/midos.sh
ersetzen
Ich will es nicht. Ich möchte direkt verwenden. Es ist möglich?
ErkanMDR
1
Ich würde ersetzen shdurch bash(alias midos = "bash /home/erkanmdr/Belgeler/midos/midos.sh")
Sylvain Pineau
@ SylvainPineau nicht funktioniert
ErkanMDR

Antworten:

24

Die anderen Antworten bieten eine gute Lösung für Ihr Problem. Um Ihre Frage zu beantworten, können Sie einen Alias ​​in einer .desktop-Datei wie folgt verwenden:

Exec=bash -ic "midos"

Dies liegt daran, dass Aliase aus einer ~/.bashrcDatei nur in einer interaktiven Bash-Shell funktionieren ( -iin diesem Fall wird die Option zum Starten von Bash Interactive verwendet).

Wenn ein anderer Benutzer dieselbe .desktop-Datei verwenden möchte, muss er auch diesen Alias ​​definiert haben.

Radu Rădeanu
quelle
Groß! Genau das, wonach ich gesucht habe. Vielen Dank
ErkanMDR
6

Ich wäre sehr überrascht, wenn die GUI eine Idee zu Ihrer Shell hätte. Sie sollten den vollständigen Pfad in Ihre Desktop-Datei einfügen:

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

Und stellen Sie sicher, dass Ihr Skript ausführbar ist.

Glenn Jackman
quelle
6

Kleine Problemumgehung.

Fügen Sie dies #!/bin/bashin die erste Zeile Ihres Skripts ein, falls es noch nicht vorhanden ist.

Zum Beispiel Ihr Skript vor:

sometext1
sometext2
sometext3
sometext4

Sie schreiben nach:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4

Kopieren Sie nun Ihr Skript nach /usr/local/binund machen Sie es ausführbar:

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

Danach sollte es funktionieren, wie Sie wollen.

c0rp
quelle