Por que “./” é usado para executar scripts “.sh” no Unix? [duplicado]

4
    

Esta pergunta já tem uma resposta aqui:

    
  •              Por que preciso digitar './' antes de executar um programa no diretório atual?                                      10 respostas                          
  •     

Estou executando um script .sh hoje. Ele é executado com prefixo "./.sh, eu sou um pouco confuso porque também é executado sem ./.but porque isso é necessário para usar ./

Você poderia me explicar por que ./ é usado para executar scripts .sh?

    
por user283502 20.05.2014 / 15:38

2 respostas

7

O ./ é necessário para informar ao intérprete bash onde o script está localizado. Existe um conjunto fixo de diretórios que o intérprete bash irá verificar para executar um comando.

Se o seu script não estiver em um desses diretórios, ele não encontrará o script, a menos que você especifique o caminho. O ./ está dizendo ao interpretador bash que o script está no diretório atual.

Você também pode executar o script de qualquer outro diretório usando o caminho completo.

por exemplo. ./script.sh de dentro de /path/to é o mesmo que executar /path/to/script.sh de qualquer lugar se o script estiver localizado em /path/to .

Você pode executar echo $PATH para obter uma lista de todos os diretórios que o intérprete bash verificará. Se você mover seu script ou colocar um link simbólico em um dos diretórios, você poderá executá-lo usando apenas o nome do arquivo script .

    
por dan08 20.05.2014 / 15:45
0

Usando "./" significa que você solicita que seu arquivo seja executado. Mas, seu arquivo tem que ser executável, senão não funcionará.

Se o seu arquivo não for executável, você terá que prefixar o seu comando com o programa destinado a executá-lo. Para o seu script sh, provavelmente será: "/ bin / sh myscript.sh".

    
por Atem18 20.05.2014 / 15:45

Tags