Так что для меня приоритет в этом порядке от высокого к низкому:
командная строка (переопределяет все ниже), переменная окружения, файл конфигурации и значение по умолчанию.
В общих аргументах командной строкидолжен иметь возможность переопределять все значения конфигурации.
Переменные среды должны иметь возможность переопределять значения файла конфигурации, но не аргументы командной строки.Если вы хотите переопределить значение файла конфигурации с помощью переменной среды, то: X = 3, которая переопределяет значение файла конфигурации X = 1, а затем с X = 2 следует выполнить из командной строки.
Я думаю, что это наиболеегибкий способ управления такой иерархией.