Bash脚本不是从nautilus运行,而是从终端运行

在我向我的问题添加更多细节之前,我必须说一些非常重要的事情:

是的,我的脚本已打开“允许执行文件作为程序”

问题本身:

出于编程原因(共享库),我无法仅从可执行文件中执行程序,因为我需要在执行程序之前访问LD_LIBRARY_PATH 。 我创建了这个脚本来执行此操作(请记住这是我第一次编写脚本):

 #!/bin/bash #Get the current directory and append the SO's location currentDir=$(pwd)'/libs/' #Change the library path export LD_LIBRARY_PATH=$currentDir #Run the program ./program 

从终端运行后,我认为它已经工作,没有错误,程序没有抱怨共享库。 但不幸的是,如果我尝试双击Nautilus的.sh文件,则没有任何反应。 最糟糕的部分是,因为我从GUI运行它,我不知道它得到了什么错误。 我正在运行Ubuntu 14.04,可执行程序是使用SFML库的C ++程序(是的,我可以只有依赖项,但是在Linux计算机上通常不安装SFML,这是重点)。

允许执行文件作为程序的属性是不够的。

更改Nautilus首选项中的设置

在此处输入图像描述


或通过终端:

 gsettings set org.gnome.nautilus.preferences executable-text-activation ask