Você está usando um heredoc com <<EOF
. Nos shells 'sh' / bash, (como na maioria das outras linguagens de programação) as variáveis dentro de um heredoc são expandidas em tempo de execução, da mesma maneira que dentro de strings com aspas duplas. Por exemplo, $UID
é expandido para o ID do usuário de quem executa o arquivo de especificação e $exec
é expandido para uma cadeia vazia porque ainda não foi definido.
$ cat <<EOF
> I am $USER
> EOF
I am grawity
Para evitar isso, coloque a string de limite entre aspas simples: <<'EOF'
$ cat <<'EOF'
> I am $USER
> EOF
I am $USER