Qual executável é chamado se chamado dentro do script via caminho relativo?

1

Digamos que eu tenha esse script mm in dir1 :

#Contents of mm
echo "Hello Main!"
./hd

Meu pwd é dir2 e agora executo mm :

$ ../dir1/mm

Existe um executável chamado hd em dir1 e dir2 . Eu tentei e o hd em dir2 é executado. Por que não é hd in dir1 executado?

    
por Tosh 06.12.2015 / 03:04

1 resposta

2

Porque a execução de um arquivo não altera o diretório de trabalho atual do seu processo para o diretório do arquivo.

O executável pode escolher fazê-lo depois de ser executado. Por exemplo, às vezes faço:

cd "$(dirname "$0")" 

no meu script para garantir que meu diretório de trabalho atual seja o diretório do executável, mas não é obrigatório fazê-lo.

    
por 06.12.2015 / 03:16

Tags