script não encontrado embora esteja no PATH

1

Dê uma olhada nesta saída do terminal ...

bjorn@jungleland:~$ cd bin
bjorn@jungleland:~/bin$ ./first.sh 
Hello World
bjorn@jungleland:~/bin$ cd ..
bjorn@jungleland:~$ pwd
/home/bjorn
bjorn@jungleland:~$ echo $PATH
/home/bjorn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/bjorn/bin
bjorn@jungleland:~$ ./first.sh
bash: ./first.sh: No such file or directory
bjorn@jungleland:~$ 

Como o first.sh não é encontrado quando estou no meu diretório home? Eu tentei sair e entrar de novo!

    
por Björn Andersson 09.01.2013 / 23:02

1 resposta

6

Porque você está executando especificamente ./first.sh , ou seja, um script chamado "first.sh" que está no diretório atual ( ./ ). Se está no $ PATH ou não é irrelevante. Se você der um caminho completo, como você está fazendo, o sistema irá procurar pelo executável no caminho dado. Compare os comandos abaixo:

/bin/ls      <-- works
ls           <-- works
../../bin/ls <-- works if you are in $HOME
./ls         <-- fails unless you are in /bin

O que você deseja executar é first.sh em vez de ./first.sh .

    
por 09.01.2013 / 23:09