Это то, что вы ищете? из i3 man page: https://i3wm.org/i3status/manpage.html#_cpu_temperature
5.9. CPU-Temperature
Получает температуру заданной тепловой зоны. Можно задать порог max_threshold, который будет окрашивать температуру в красный цвет в случае, если указанная тепловая зона становится слишком горячей. По умолчанию 75 градусов C. Формат вывода при превышении max_threshold может быть настроен с помощью format_above_threshold.
Пример порядка: cpu_temperature 0
Пример формата: T: %degrees °C
Пример max_threshold: 42
Пример format_above_threshold: Предупреждение T выше порога: %degrees °C
Пример пути: /sys/devices/platform/coretemp.0/temp1_input
Выберите одну (или несколько) переменных, которые ДОЛЖНЫ существовать для работы функций, и используйте что-то вроде:
[ -z "$REQUIREDVARIABLE" ] && . persistent-file
или
[ -z "$REQ1" ] || [ -z "$REQ2" ] || [ -z "$REQ3" ] && . persistent-file
Таким образом, исходные скрипты будут читать постоянный файл, только если переменная(ы) не уже в окружении (а они будут, и будут поддерживаться в актуальном состоянии, при использовании скрипта "мастера").
PS: IMO вам следует использовать инструменты упаковки вашего unix/linux для развертывания производственного кода, а не изобретать колесо. При распространении среди третьих лиц, упаковывайте для всех unix/linux-distros, которые вы собираетесь поддерживать. Используйте виртуальные машины под управлением определенных операционных систем и версий для сборки пакетов. А если ваш код с открытым исходным кодом, то различные дистрибутивы и т.д. будут поддерживать свои собственные пакеты или порты, если это покажется кому-то из разработчиков полезным или интересным.