Absolutamente nada. Somente executáveis em um dos diretórios em $PATH
podem ser executados diretamente e .
é (geralmente) nunca em $PATH
. Especifique o caminho para o executável, por exemplo, ./grr.sh
.
Estou no OSX Snow Leopard.
Este é o conteúdo completo de grr.sh
:
#!/bin/sh
echo wow
Quando tento executá-lo no terminal:
$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow
Ok. Justo. Vou dar permissão executável e, em seguida, tente novamente:
$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found
Hmmm. Talvez funcione se eu usar bash explicitamente? Eu vou mudar o conteúdo do arquivo para:
#!/bin/bash
echo wow
E obtenho exatamente os mesmos resultados. O que eu poderia ter quebrado?!
Uma última coisa! Caso você esteja curioso ...
$ which sh
/bin/sh
É a localização de grr.sh na variável $PATH
? Caso contrário, você precisará inserir:
./grr.sh
se você estiver na mesma pasta que grr.sh. Se não, forneça o caminho completo para ele.
as permissões para o arquivo estão erradas. Experimente os seguintes comandos:
$ chmod 777 file.sh
$ ./file.sh
Sim, e o que ./grr.sh significa, é que neste diretório, execute o comando grr.sh. O solteiro . significa no diretório de trabalho. Caso contrário, seu shell assumirá que você está tentando executar um comando em seu $ PATH.