Мой псевдоним .bashrc не запускается в файле .desktop


19

Я добавил следующую строку в .bashrcфайл:

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

Эта команда отлично работает в терминале и tty. Но не работает в моем файле ярлыков .desktop.

файл midos.desktop:

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

Как выполнить мою midosкоманду в файле ярлыков .desktop?


Вы можете просто заменить Exec=midosнаExec=sh /home/erkanmdr/Belgeler/midos/midos.sh
c0rp

Я не хочу этого. Я хочу использовать напрямую. Это возможно?
ErkanMDR

1
Я бы заменил shна bash(псевдоним midos = "bash /home/erkanmdr/Belgeler/midos/midos.sh")
Сильвен Пино

@SylvainPineau не работает
ErkanMDR

Ответы:


24

В то время как другие ответы предлагают хороший обходной путь для вашей проблемы, для ответа на ваш вопрос правильный путь использования псевдонима внутри файла .desktop в вашем случае:

Exec=bash -ic "midos"

Это связано с тем, что псевдонимы из ~/.bashrcфайла будут работать только в интерактивной оболочке bash ( -iв этом случае используется опция для запуска интерактивной оболочки bash).

Если другой пользователь хочет использовать тот же файл .desktop, он должен также определить этот псевдоним.


Большой! Именно то, что я искал. Большое спасибо
ErkanMDR

6

Я был бы чрезвычайно удивлен, если GUI имеет какое-либо представление о вашей оболочке. Вы должны указать полный путь в файле рабочего стола:

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

И убедитесь, что ваш скрипт исполняемый.


6

Маленький обходной путь.

Добавьте это #!/bin/bashв первую строку вашего скрипта, если его там еще нет.

Например, ваш сценарий раньше:

sometext1
sometext2
sometext3
sometext4

Вы сценарий после:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4

Теперь скопируйте ваш скрипт /usr/local/binи сделайте его исполняемым:

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

После этого должно работать как хочешь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.