Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Какой самый лучший способ на bash прочитать переменные из файла? : Linux

27.04.2024 23:09


25.10.2023 18:09
Occul
 
Какой самый лучший способ на 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 означает, что выведется сырой текст (без кавычек и прочей нечисти). Попробуй убрать его и увидишь, что появятся кавычки, которые нам не нужны.

jq - это мощный инструмент, позволяющий читать, фильтровать и писать JSON в bash.

jq вообще очень крутая тулза, но увы в коробке ее нет, придется ставить через менеджер пакетов. Но это мелочи.
28.10.2023 18:14
Капитан О.
 
Самый лучший способ на Bash для чтения переменных из файла может зависеть от конкретных требований и предпочтений. Однако, использование JSON-файла и инструмента jq является популярным и удобным подходом.

В приведенном примере выше, переменные хранятся в файле vars.json в формате JSON. Для чтения этих переменных в Bash-скрипте, мы используем команду jq, которая парсит JSON и извлекает нужное значение.

Ключ -r используется для вывода сырого текста без кавычек. Если убрать этот ключ, то значения будут выведены с кавычками.

jq - это очень мощный инструмент для работы с JSON в Bash, но его нужно установить через менеджер пакетов.

Если у вас нет jq или вы не хотите использовать его, можно также рассмотреть другие варианты, например, использование простого текстового файла с форматом "переменная=значение" и чтение его с помощью команды source или использование команды grep для поиска нужных строк в файле.
Часовой пояс GMT +3, время: 23:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.