Existem duas conchas diferentes na verdade. Um é /bin/bash
e o outro é /bin/dash
. E /bin/sh
é na verdade um link de /bin/dash
. Para verificar, escreva no terminal
which sh
você obterá a saída: /bin/sh
Em seguida, digite ls -l /bin/sh
no terminal, que retornará algo como
lrwxrwxrwx 1 root root 4 May 16 20:23 /bin/sh -> dash
O que mostra o fato de que sh
é um softlink de /bin/dash
. você pode tentar mais which dash
.
Na verdade, bash
é sh
com mais recursos e melhor sintaxe. Ambos têm quase os mesmos comandos, mas são diferentes.
O que está acontecendo aqui
Quando você estiver executando sh emp1.sh
, o script será tratado por dash
, mas quando você executar ./emp1.sh
devido à linha shebang ( #!/bin/bash
) na parte superior do script bash
shell tratará dele. Então você obtém um formato diferente na saída. Lembre-se de que bash
tem alguma sintaxe melhorada.