Sim, neste caso.
Resumo: A linha hash-bang (também chamada de "shebang" e outras coisas) só é necessária se estiver em um script executável sem especificar explicitamente seu interpretador (da mesma forma que ao executar um arquivo executável binário). / p>
No caso do seu código, você está executando explicitamente o script no documento here com bash
. Não há necessidade de adicionar o hash-bang, pois ele será tratado como um comentário.
Como o script here-document parece querer ser executado com a opção -x
(a julgar em #!/bin/bash -x
), você terá que usar set -x
dentro do documento here para obter o mesmo efeito de se executando o here-document como seu próprio script, novamente, porque o hash-bang é tratado como um comentário.
A linha hash-bang é usada ao executar um arquivo de texto executável. A linha informa ao sistema qual interpretador usar para executá-lo e, opcionalmente, permite que você especifique um argumento para esse interpretador ( -x
no seu caso).
Você faz precisa do hash-bang se estiver escrevendo o documento here em um arquivo que será usado posteriormente como um script. Por exemplo:
cat >myscript.sh <<<END_OF_SCRIPT
#!/bin/bash
# contents of script
# goes here
END_OF_SCRIPT
Esse arquivo também precisa ser executado como executável ( chmod +x myscript.sh
). Mas, novamente, se você explicitamente executasse esse script com bash
, por exemplo, por meio de
$ bash ./myscript.sh
ou
$ bash -x ./myscript.sh
(ou de forma equivalente a partir de outro script), então não é necessário hash-bang e o script não precisa ser executado.
Tudo se resume a como você deseja executar o script.
Veja também a entrada da Wikipedia para Shebang .