web-dev-qa-db-ja.com

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++プログラムです(はい、私は依存関係を持つことができますが、SFMLはLinuxコンピュータに一般的にインストールされておらず、これはポイントです)。

7
Orfby

プロパティ Allow executing file as program 十分ではありません。

Nautilusの設定で設定を変更する

enter image description here


またはターミナル経由:

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