Analysieren Sie die Konfigurationsdatei, führen Sie sie nicht aus.
Momentan schreibe ich eine Anwendung bei der Arbeit, die eine extrem einfache XML-Konfiguration verwendet:
<config>
<username>username-or-email</username>
<password>the-password</password>
</config>
Im Shell-Skript (der "Anwendung") ist dies das, was ich mache, um den Benutzernamen zu ermitteln (mehr oder weniger, ich habe es in eine Shell-Funktion eingefügt):
username="$( xml sel -t -v '/config/username' "$config_file" )"
Der xml
Befehl lautet XMLStarlet und ist für die meisten Unices verfügbar.
Ich verwende XML, da andere Teile der Anwendung auch Daten verarbeiten, die in XML-Dateien codiert sind. Das war also am einfachsten.
Wenn Sie JSON bevorzugen, gibt jq
es einen einfach zu verwendenden Shell-JSON-Parser.
Meine Konfigurationsdatei würde in JSON ungefähr so aussehen:
{
"username": "username-or-email",
"password": "the-password"
}
Und dann würde ich den Benutzernamen im Skript bekommen:
username="$( jq -r '.username' "$config_file" )"