Tantas perguntas ... Eu as levo uma de cada vez.
1) Qual é o objetivo do comando sh quando usado interativamente?
Fornece um novo contexto de ambiente, portanto, se você quiser experimentar algumas configurações de variáveis de ambiente, você pode. E quando você terminou, exit
sem nenhum dano.
Além disso, se você estivesse em um shell diferente, como zsh ou csh, e quisesse executar em um shell sh
, isso mudaria você.
2) Quando usado em um script bash como você tem acima, ele irá novamente fornecer um contexto de ambiente contido para o "comando" para executar. Você também pode usá-lo com o
#!/bin/bash
sh -c "command" &
e bifurque "comando" para rodar em paralelo com o resto do seu script.
3) Eu diria que, se é algo que precisa especificamente de bash
, então coloque-o explicitamente em sua linha de hash bang. Mas como na maioria dos sistemas * nix posteriores sh
é equivalente a bash
, provavelmente não é necessário.