桌面启动器和 shell 脚本这两者之间有明显的区别吗?

桌面启动器和 shell 脚本这两者之间有明显的区别吗?
  1. 我创建了一个 shell 脚本(bash),它被命名为startup.sh

  2. 然后我也制作了桌面启动器,~/.local/share/applications/my.desktop

我以为 1) 和 2) 是一样的。但它们的行为方式不同:这两个命令接收不同的环境变量。来自“startup.sh”的进程有一个“http_proxy”变量。

流程形式my.desktop没有http_proxy变量。

我希望这两个命令使用相同的环境变量。

如果尝试使用设置my.desktop terminal=true,这会导致该程序的行为与 startup.sh 相同,但也会导致弹出一个终端,而这是我所不想要的。

答案1

只需更改 .desktop 文件中的 Exec 行即可运行该脚本。

如果这没有帮助,请在脚本开头添加一行 cd folder-containing-the-script。有些脚本需要这样做。

相关内容