Executando o script de shell

-1

Eu tenho um script:

echo "start"
cd ~/GoogleDrive/
drive push path-to-file/
echo "done"

que faz o upload do caminho para o arquivo na minha conta do Google Drive. Eu posso rodar este script sem nenhum problema por sh UploadToDrive.sh mas quando eu tento executá-lo clicando duas vezes no script eu recebo o erro

start
/home/user/UploadToDrive.sh: 3: /home/user/UploadToDrive.sh: drive: not found
done 

Eu postei aqui porque parece que o Gnome está fazendo algo errado em vez de algo errado com o script, pois funciona quando eu uso sh ou ./ explicitamente. Estou usando o Ubuntu 15.10 com o Gnome 3, se for relevante.

    
por Gonenc Mogol 29.04.2016 / 14:53

1 resposta

2

Já que .sh extension é apenas uma dica para usuários (yep linux não dançam na linha de fazer extensão yada yada como windows) seu script não tem como primeiro uma linha shebang, então seu script deve ficar assim:

#!/bin/bash
echo "start"

#you might want to use explicit paths here this is why your script fails
cd /home/username/GoogleDrive/

#you might want to use explicit paths here this is why your script fails
drive push path-to-file/

echo "done"

Após essa alteração, verifique se o arquivo tem as permissões adequadas:

chmod 755 UploadToDrive.sh

Por fim, ative a execução dentro da GUI, acessando as propriedades dos scripts:

    
por Videonauth 29.04.2016 / 15:03