Com scripts de shell, isso normalmente é feito usando a função source
, que executa o arquivo como um script de shell como se estivesse embutido no script que você está executando - o que significa que quaisquer variáveis definidas no arquivo são exportados para o seu script.
A desvantagem é que (a) seu arquivo de configuração é executado, portanto, é um risco de segurança se usuários sem privilégios puderem editar arquivos de configuração privilegiados. E (b) sua sintaxe de arquivo de configuração é restrita à sintaxe bash válida. Ainda assim, é realmente conveniente.
config.conf
USER=joe
PASS=hello
SERVER=127.0.0.2
script.sh
#!/bin/bash
# Set defaults
USER='whoami'
# Load config values
source config.conf
foobar2000 --user=$USER --pass=$PASS --HOST=$HOST
source
pode ser abreviado com um único .
- então os dois seguintes são equivalentes:
source file.sh
. file.sh