O script Bash não é executado a partir do nautilus, mas é executado a partir do terminal

7

Antes de adicionar mais detalhes à minha pergunta, tenho que dizer algo muito importante:

Sim, meu script tem "Permitir que o arquivo de execução como programa" seja ativado

A questão em si:

Por motivos de programação (bibliotecas compartilhadas), não consigo executar meu programa apenas a partir do executável, porque preciso acessar LD_LIBRARY_PATH antes de executar o programa. Eu criei este script para fazer isso (tendo em mente que esta é minha primeira vez escrevendo um script):

#!/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

Depois de executar isso no terminal, achei que funcionou, não houve erros e o programa não reclamou de bibliotecas compartilhadas. Mas infelizmente, se eu tentar clicar duas vezes no arquivo .sh do Nautilus, nada acontece. A pior parte também, é que desde que eu estou correndo da GUI, não tenho idéia do erro que está recebendo. Estou executando o Ubuntu 14.04 e o executável é um programa C ++ usando as bibliotecas SFML (Sim, eu poderia apenas ter as dependências, mas o SFML não é comumente instalado em computadores linux, e isso é além do ponto).

    
por Orfby 15.08.2015 / 19:49

1 resposta

8

A propriedade Permitir a execução do arquivo como programa não é suficiente.

Altere as configurações nas Preferências do Nautilus

ou via terminal:

gsettings set org.gnome.nautilus.preferences executable-text-activation ask
    
por A.B. 15.08.2015 / 20:27