Em geral, sh , ash , dash , bash , csh , tcsh , zsh ... são todos shells com suas próprias sintaxes e características. Existem algumas compatibilidades, mas elas são orientadas [ 1 ] : um bash shell executará um script sh , mas não é dito que o vice-versa . Uma invocação de sh exigiu menos recursos do que bash one. Para uma única instância, não é um problema, para milhares, deveria ser.
Formas de executar.
Para executar um arquivo como um programa no Linux, tanto se for um script quanto um compilado, deve-se definir o executar bit [ 2 ] e deve ser incluído em um dos diretórios de seu $PATH .
Se for um script, ele pode ser passado como argumento para o shell relativo ( sh , bash ... myfile.whatever ): se for passado para o shell errado você pode obter um comportamento incorreto e se tiver sorte com um erro ; neste caso, não precisa ser executável porque é como se você estivesse escrevendo as linhas escritas dentro do script diretamente no novo shell que você está invocando.
Para executar no mesmo shell, você pode usar source myfile ou . myfile que são o equivalente para escrever linha por linha no shell atual o conteúdo do script.
Localização
Se o programa executável não estiver incluído no seu caminho, você deve especificar onde ele pode ser encontrado.
- No seu caso, o
./ significa apenas o diretório atual do seu shell, assim como ~/myfile.whatever deve endereçar o arquivo myfile.whatever no diretório home ~/ .
- Você pode invocá-lo de outro local, por exemplo, com
/home/$USER/dir/myfile.whatever .
- Se esse arquivo estiver dentro de um diretório incluído em seu caminho, você poderá invocá-lo com um simples
myfile.whatever .
No caso de mais de um executável compartilhar o mesmo nome, a especificação do caminho completo será certa sobre qual deles você irá executar. which mycommand é capaz de dizer qual deles será executado agora (uma função, um alias, um construído ou o primeiro encontrado em seu caminho), mas não pode dizer qual deles será executado em um tempo futuro ou de outro usuário . Se você escrever expressamente o caminho completo, você corrigirá essa ambigüidade. É útil executar uma versão específica de um programa quando são instalados mais de um ao mesmo tempo ... e evitar o trojan. Em um script, sempre é sugerido escrever /bin/bash em vez de bash .