我的 .bashrc 别名未在 .desktop 文件中运行

Erk*_*MDR 19 alias .desktop

我已将以下行添加到.bashrc文件中:

alias midos="sh /home/erkanmdr/Belgeler/midos/midos.sh"
Run Code Online (Sandbox Code Playgroud)

此命令在终端和 tty 中运行良好。但不适用于我的 .desktop 快捷方式文件。

midos.desktop 文件:

[Desktop Entry]
Name=MiDoS
Exec=midos
Icon=/home/erkanmdr/Belgeler/midos-128.png
Terminal=true
Run Code Online (Sandbox Code Playgroud)

如何midos在 .desktop 快捷方式文件中执行我的命令?

Rad*_*anu 26

虽然其他答案为您的问题提供了一个很好的解决方法,但要回答您的问题,在 .desktop 文件中使用别名的正确方法是:

Exec=bash -ic "midos"
Run Code Online (Sandbox Code Playgroud)

那是因为~/.bashrc文件中的别名只能bash 交互式 shell 中工作-i在这种情况下使用选项来启动 bash 交互式)。

如果另一个用户想要使用相同的 .desktop 文件,那么他必须也定义了该别名。


gle*_*man 6

如果 GUI 对您的 shell 有任何想法,我会非常惊讶。您应该将完整路径放在桌面文件中:

Exec=/home/erkanmdr/Belgeler/midos/midos.sh
Run Code Online (Sandbox Code Playgroud)

并确保您的脚本是可执行的。


c0r*_*0rp 6

小解决办法。

将它添加#!/bin/bash到脚本的第一行(如果它还没有)。

例如你之前的脚本:

sometext1
sometext2
sometext3
sometext4
Run Code Online (Sandbox Code Playgroud)

您在以下之后编写脚本:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4
Run Code Online (Sandbox Code Playgroud)

现在将您的脚本复制到/usr/local/bin,并使其可执行:

sudo cp /home/erkanmdr/Belgeler/midos/midos.sh /usr/local/bin/midos
sudo chmod +x /usr/local/bin/midos
Run Code Online (Sandbox Code Playgroud)

之后它应该可以正常工作。