Script Bash que não cria arquivos quando executado clicando

0

Eu tenho um script bash que executa um programa que gera arquivos (no diretório atual do qual ele foi executado), então o script bash verifica eles e seus tamanhos.

Quando executo este script a partir do terminal, tudo funciona bem, os arquivos são criados, encontrados e relatados.

O problema é que isso é suposto ser amigável ao usuário básico e precisa ser clicável para ser executado. O script é executado quando clicado, no entanto, os arquivos não parecem ser gerados (talvez eles estejam em outro lugar?) E, portanto, o relatório falhou porque os arquivos não foram encontrados.

Neste script, eu faço um cd ~ / path / to / location antes de chamar o programa.

#!/usr/bin/env bash
cd ~/path/to/location
./someprogram
if [ touch output.txt ]; then
  echo "FILE EXISTS"
fi
    
por DOleary 31.08.2016 / 15:05

2 respostas

0

Acontece que meu ambiente não copiou completamente usando o SHEBANG

#!usr/bin/env bash

simplesmente definindo e exportando as variáveis de ambiente ausentes no script, o script funcionou bem.

export ENV_VARIABLE_NAME=environment_variable_data

Deve ter sido que a variável não foi definida no ambiente bash (talvez cshrc ou algo assim)

    
por 31.08.2016 / 20:14
-1

Desculpe, minha reputação aparentemente não permite que eu comente, embora tenha sido mais apropriado, já que estou pedindo para você verificar algo primeiro.

De qualquer forma, minha pergunta é: você está usando o mesmo nome de usuário ao usar o console e a GUI?

Você poderia ter feito login como root ao usar o console, enquanto sua interface gráfica seria registrada usando outro nome de usuário, que pode não ter os direitos necessários na pasta em que você está tentando gravar os arquivos?

Depois, você deve garantir que você concedeu os direitos necessários ao usuário da GUI (adicionando a conta de usuário a um grupo relevante, por exemplo).

Essa é provavelmente a razão mais comum para os arquivos não serem gravados onde você os espera ao usar o Linux.

    
por 31.08.2016 / 15:22