Em um script, os caracteres #! não são especiais neste contexto. O fragmento printf -- "#!${opt_E}" chama o comando printf com dois argumentos: -- e #! concatenados com o valor da variável opt_E . O argumento -- informa a printf que, mesmo que haja argumentos subseqüentes começando com - , eles não devem ser interpretados como opções; isso não faz diferença aqui, pois #!${opt_E} não começa com - . As aspas duplas em torno de #!${opt_E} protect # são interpretadas como um caractere de início de comentário e protegem o valor de opt_E de ser dividido em palavras separadas que são interpretadas como padrões de caractere curinga.
Se o valor de opt_E não contiver nenhum caractere % ou \ , esse comando imprime #! seguido pelo valor de opt_E , sem nova linha final. Em geral, o comando interpreta o valor de opt_E como um formato printf.
Se você tentar isso em um shell interativo, poderá ver efeitos estranhos devido a ! ser interpretado como um caractere de expansão de histórico, que recupera automaticamente os comandos anteriores. Para evitar isso, adicione um \ antes de ! . ! também é interpretado literalmente entre aspas simples: printf -- '#!${opt_E}' .
Se você estiver repetindo um script, terá que definir opt_E para o valor correto primeiro. Se você estiver tentando depurar um script, adicione set -x na segunda linha (insira-o logo abaixo da linha #! inicial): o shell imprimirá um traço de cada linha à medida que for executado.