Какой самый лучший способ на Bash прочитать переменные из файла? Велосипедов я много повидал, но мастхев — это, конечно же, закинуть все переменные в JSON-файлик и без лишнего геморроя его использовать.

Создаём файл vars.json, закидываем в него переменные/константы или чо там у тебя в конфигах обычно содержится:

{
    "login": "user",
    "password": "12345678"
}

А в главном скрипте, который всё это будет читать, делаем так:

#!/bin/bash

config="vars.json"

login=$(jq -r '.login' < $config)
passwd=$(jq -r '.password' < $config)

echo $login
echo $passwd

Тут это — говорим в config, как называется файл с переменными, а далее с помощью офигительной утилиты jq парсим конфиг без кучи говнокода и слёз.

Ключик -r означает, что выведется сырой текст (без кавычек и прочей нечисти). Попробуй убрать его и увидишь, что появятся кавычки, которые нам не нужны.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
jq — это мощный инструмент, позволяющий читать, фильтровать и писать JSON в Bash.

jq вообще очень крутая тулза, но, увы, в коробке её нет, придётся ставить через менеджер пакетов. Но это мелочи.

Есть и другие способы работать с конфигами в Bash, но, как я выше сказал, JSON — наше всё и мастхев. Изучай.