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.