Analysez le fichier de configuration, ne l'exécutez pas.
J'écris actuellement une application au travail qui utilise une configuration XML extrêmement simple:
<config>
<username>username-or-email</username>
<password>the-password</password>
</config>
Dans le script shell ("l'application"), voici ce que je fais pour obtenir le nom d'utilisateur (plus ou moins, je l'ai mis dans une fonction shell):
username="$( xml sel -t -v '/config/username' "$config_file" )"
La xml
commande est XMLStarlet , qui est disponible pour la plupart des Unices.
J'utilise XML car d'autres parties de l'application traitent également des données encodées dans des fichiers XML, donc c'était plus simple.
Si vous préférez JSON, il jq
existe un analyseur JSON shell facile à utiliser.
Mon fichier de configuration ressemblerait à ceci en JSON:
{
"username": "username-or-email",
"password": "the-password"
}
Et puis j'obtiendrais le nom d'utilisateur dans le script:
username="$( jq -r '.username' "$config_file" )"