Bash 脚本不能从 nautilus 运行,但可以从终端运行

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

从终端运行此程序后,我认为它已经成功了,没有错误,程序也没有抱怨共享库。但不幸的是,如果我尝试.sh从 Nautilus 双击该文件,什么也没有发生。最糟糕的是,由于我是从 GUI 运行它,所以我不知道它得到了什么错误。我运行的是 Ubuntu 14.04,可执行文件是一个使用 SFML 库的 C++ 程序(是的,我可以只拥有依赖项,但 SFML 并不常安装在 Linux 计算机上,这不是重点)。

答案1

財產Allow executing file as program還不够。

更改 Nautilus 偏好设置中的设置

在此处输入图片描述


或通过终端:

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

相关内容