Il mio alias .bashrc non viene eseguito nel file .desktop


19

Ho aggiunto la seguente riga al .bashrcfile:

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

Questo comando funziona bene nel terminale e tty. Ma non funziona nel mio file di collegamento .desktop.

file midos.desktop:

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

Come eseguo il mio midoscomando nel file di scelta rapida .desktop?


Puoi semplicemente sostituire Exec=midosconExec=sh /home/erkanmdr/Belgeler/midos/midos.sh
c0rp il

Io non lo voglio. Voglio usare direttamente. È possibile?
ErkanMDR,

1
Sostituirei shcon bash(alias midos = "bash /home/erkanmdr/Belgeler/midos/midos.sh")
Sylvain Pineau,

@SylvainPineau non ha funzionato
ErkanMDR il

Risposte:


24

Mentre le altre risposte offrono una buona soluzione al tuo problema, per rispondere alla tua domanda, il modo giusto di utilizzare un alias all'interno di un file .desktop è, nel tuo caso:

Exec=bash -ic "midos"

Questo perché gli alias dal ~/.bashrcfile funzioneranno solo in una shell interattiva bash (l' -iopzione viene utilizzata in questo caso per avviare bash interactive).

Se un altro utente desidera utilizzare lo stesso file .desktop, deve aver definito anche tale alias.


Grande! Esattamente quello che stavo cercando. Grazie mille
ErkanMDR,

6

Sarei estremamente sorpreso se la GUI avesse qualche idea sulla tua shell. Dovresti inserire il percorso completo nel tuo file desktop:

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

E assicurati che il tuo script sia eseguibile.


6

Piccola soluzione.

Aggiungi questo #!/bin/bashalla prima riga del tuo script, se non è già presente.

Ad esempio il tuo script prima:

sometext1
sometext2
sometext3
sometext4

Lo script dopo:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4

Ora copia il tuo script in /usr/local/bine rendilo eseguibile:

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

Dopodiché dovrebbe funzionare come desideri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.