Problemas ao tentar executar o arquivo sh a partir de outro arquivo sh

4

Eu tenho o seguinte script:

#!/bin/bash

if test -f "/path/pycharm.sh"; then sh ./pycharm.sh;
fi

Estou tentando executar o pycharm.sh de um arquivo bash e observei com cuidado para fornecer todas as permissões necessárias para o arquivo. Infelizmente, toda vez que eu corro, eu entendo isso:

Can't open ./pycharm.sh

    
por Cajuu' 14.04.2015 / 13:57

5 respostas

17

Você não usa ./ para executar um script em geral , você o usa para executar um programa (script ou binário compilado) no diretório atual . Se o segundo script estiver em /path/pycharm.sh , então você deve executá-lo como /path/pycharm.sh e não ./pycharm.sh .

    
por 14.04.2015 / 14:02
6

Seu script de shell está em outro diretório, use o caminho absoluto.

sh /path/pycharm.sh
    
por 14.04.2015 / 14:01
5

O erro é bastante explícito:

  • Ele não existe no caminho especificado ou
  • Ele não tem permissão para abri-lo.

Como você está usando um caminho relativo, eu coloquei meu dinheiro no primeiro. Especifique um caminho completo para o segundo pycharm.sh e ele deve funcionar.

    
por 14.04.2015 / 14:00
0

Por favor, execute o comando pwd e verifique se o arquivo pycharm.sh está presente nesse diretório. Ou você pode fornecer o caminho completo em um script.

Você pode ter informações mais detalhadas usando a opção -x ao executar o script.

    
por 14.04.2015 / 16:30
-1

Estou faltando alguma coisa ou você quer executar a mesma cadeia cuja existência você está verificando primeiro. Se sim, então a maneira correta é esta:

#!/bin/bash

if test -f "/path/pycharm.sh"; then /path/./pycharm.sh;
fi
    
por 14.04.2015 / 21:31