Você está executando o script com sh
, não bash. ( sh
pode ser bash
, mas quando executado como sh
, ele opera sob regras diferentes.)
Ao fazer o sourcing de um arquivo com . something
, se something
não for um caminho absoluto ou relativo, mas apenas um nome de arquivo, então para um shell POSIX :
If file does not contain a
<slash>
, the shell shall use the search path specified byPATH
to find the directory containing file. Unlike normal command search, however, the file searched for by the dot utility need not be executable. If no readable file is found, a non-interactive shell shall abort; an interactive shell shall write a diagnostic message to standard error, but this condition shall not be considered a syntax error.
O Bash também procura pelo arquivo no diretório atual. Execute o script com bash
, não sh
ou ./exec.sh
, para que seja usado o shebang (que é #!/bin/bash
). Caso contrário, dê um caminho para o arquivo
sh exec.sh ./env_local.config ebis_tag