Hallo,
ich habe ein Tool das von allem genannten Verwendung macht. Also Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen.
Nehmen wir an eine Option kann via Konfigurationsdatei key = value, via Kommandozeilenargument -key value und Umgebungsvariable export KEY=value gesetzt werden. Wie sollte die Priorität sein?
Ich habe es gerade so abgeändert das vor der Konfigurationsdatei das Kommandozeilenargument und erst danach die Umgebungsvariable ausgewertet wird. Vorher war es so das die Umgebungsvariable den Wert aus Konfigurationsdatei und das Kommandozeilenargument überschrieben hat - das war zum Entwickeln/Debuggen nützlich, aber scheint mir zum konfigurieren falsch.
Wie findet ihr das Sinnvoll?
Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen
Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen
In meinen Augen sind beide Vorgehen falsch. Die Umgebunsvariablen sind für alles und jeden zu jeder Zeit, also die default-Einstellung. Die Konfigurationsdatei bezieht sich auf dein Programm, die Startparameter beziehen sich auf den Start jetzt. Eingelesen werden sollte also in der Reihenfolge:inne hat geschrieben:18.11.2018 14:42:04Ich habe es gerade so abgeändert das vor der Konfigurationsdatei das Kommandozeilenargument und erst danach die Umgebungsvariable ausgewertet wird. Vorher war es so das die Umgebungsvariable den Wert aus Konfigurationsdatei und das Kommandozeilenargument überschrieben hat
Umgebungsvariable-Konfigurationsdatei-Startparameter.
Die Startparameter haben also die höchste Priorität und überschreiben damit Werte, die durch Umbegungsvariablen oder Konfigurationsdatei eventuell schon gesetzt wurden.
-
- Beiträge: 3289
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen
Ich habe hier neue Umgebungsvariable eingeführt, aber Du hast recht so verhalten sich auch die restlichen.tobo hat geschrieben:18.11.2018 16:59:34Die Umgebunsvariablen sind für alles und jeden zu jeder Zeit, also die default-Einstellung. Die Konfigurationsdatei bezieht sich auf dein Programm, die Startparameter beziehen sich auf den Start jetzt.
Und das jeweils letzte gilt?!tobo hat geschrieben:18.11.2018 16:59:34Eingelesen werden sollte also in der Reihenfolge: Umgebungsvariable-Konfigurationsdatei-Startparameter.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen
Da der letzte Wert den vorletzten Wert überschreibt - ja. Rechts vor links (in der Auflistung).
Man kann das theoretisch noch erweitern um einkompilierte oder programmtechnisch gesetzte Default-Werte. Also Werte z.B., die existieren müssen, wenn das Programm beim ersten Mal startet und danach womöglich eine Konfigurationsdatei anlegt. Oder generell, Werte, die im Programm selbst stehen aber veränderlich sein können. Dann wäre das erweitert: Umgebungsvariable-Programmvariable-Konfigurationsdatei-Parameter.