O shell padrão para este usuário (não o shell atual) será usado. Dê uma olhada em /etc/passwd
- está definido lá e será lançado no login. Você pode usar chsh
para alterar o shell padrão do usuário atual.
Ter um script de shell super simples como esse:
echo "Hello World"
sem linha shebang, o bit executável definido no arquivo e chamado assim:
./my_sript
qual é o interpretador usado para executar o script? Como é encontrado pelo sistema e onde o interpretador padrão é definido?
O shell padrão para este usuário (não o shell atual) será usado. Dê uma olhada em /etc/passwd
- está definido lá e será lançado no login. Você pode usar chsh
para alterar o shell padrão do usuário atual.
Eu não concordo com a resposta da jvb. Considere o seguinte script formatado em csh, sem um shebang:
#
set x = 'a'
if ($x == 'a') then
echo "running csh"
endif
Na minha máquina, onde meu shell padrão é (t) csh, o resultado é:
anukis% ./shell-test
running csh
Agora, edite o script para excluir a linha superior:
set x = 'a'
if ($x == 'a') then
echo "running csh"
endif
Agora execute novamente e o resultado é:
anukis% ./shell-test
./shell-test: 6: Syntax error: end of file unexpected (expecting "fi")
Qual é a diferença? A maneira antiga de diferenciar csh de (Bourne) sh: se a primeira linha começa com um octothorpe ("#"), suponha que seja um script C-shell, caso contrário, um shell Bourne (-type).