Coloque o comando em uma matriz.
arr=(foo bar baz quux)
exec "${arr[@]}"
Eu tenho um script bash que deve estar executando vários comandos. Os comandos funcionam bem quando inseridos em um terminal, mas quando eu tento executá-los de dentro do script eles não funcionam, então eu suponho que seja algo específico do ambiente.
No script que tenho
exec "$cmd"
e isso não funciona, enquanto que se eu copiar o conteúdo de $ cmd e colar em um terminal, ele funcionará bem.
Como faço para manter o ambiente atual ao executar o script? Ou você tem alguma outra ideia do que seja?
Coloque o comando em uma matriz.
arr=(foo bar baz quux)
exec "${arr[@]}"
Digite set -o allexport
no topo do seu script bash. Isso deve exportar automaticamente todas as variáveis definidas por você. (Observe que isso é considerado um estilo ruim; o melhor seria simplesmente exportar as variáveis apropriadas).
Tags bash bash-scripting