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
.