.sh arquivos não serão executados, mesmo após a permissão dada [duplicada]

0

Eu tive um longo histórico de não conseguir executar arquivos .sh. Eu não entendo qual é o problema subjacente, (sou um pouco novo em sistemas baseados em Ubuntu / UNIX). Quando tento executar certos scripts .sh, recebo o seguinte erro, acompanhado pelo Ubuntu Software Center:

"O arquivo" /home/user/Downloads/netbeans-8.1-cpp-linux-x86.sh "não pôde ser aberto."

Como esclarecimento, estive clicando duas vezes diretamente no arquivo .sh no sistema de arquivos.

    
por patrickhuie19 25.12.2015 / 22:00

3 respostas

0

Para instalar um script sh , você precisa digitar alguns comandos. Clicar duas vezes nele nem sempre funcionará. Primeiramente, abra um terminal, abra o gerenciador de arquivos e navegue até o local do script sh .

  1. Agora, digite o seguinte comando (edite as partes relevantes) no seu terminal:

    chmod a+x DRAG THE SH SCRIPT AND DROP IT HERE
    

Nota : Como apontado por kos , isso é feito, de modo que se a sempre que você quiser executá-lo como abaixo, você não terá nenhum erro.

./path/to/script
  1. Em seguida, digite:

    sh DRAG THE SH SCRIPT AND DROP IT HERE
    

Se houver algum erro, como Permission Denied , execute o script como root :

sudo sh DRAG THE SH SCRIPT AND DROP IT HERE
    
por Raphael 26.12.2015 / 03:59
1

Existem dois motivos pelos quais um script simples no linux pode não ser executado:

  1. O caminho não está correto. Ao contrário do Windows, o diretório atual é não no caminho de pesquisa do shell. Portanto, para chamar um script no diretório atual, você precisa especificar o diretório atual com o ponto . antes do nome do script: ./script.sh . Como alternativa, você pode especificar o caminho completo: /home/user/script.sh

  2. O arquivo de script está faltando. Ou está sob um caminho diferente . Isso é o mesmo que acima.

Você pode executar scripts de duas maneiras:

  1. especifique o nome (com o caminho) na linha de comando. E - se as permissões estiverem corretas - o arquivo será executado com o shell (se o shebang estiver correto)

  2. use o comando shell sh e especifique o script como argumento. Então, não é necessário especificar o caminho, no entanto, o shell precisa ser capaz de encontrar o script. Você executaria um script no diretório atual da seguinte forma: sh script.sh

por user23573 25.12.2015 / 22:54
-4

Tente o comando "chmod 777" e, em seguida, o nome do seu arquivo. Para executar, digite o nome do seu arquivo sh com ./ na frente dele. Expempli gratia: chmod 777 coolman.sh ./coolman.sh

    
por Michael Pagano 25.12.2015 / 22:51