bioid
@bioid

Сохраняется ли переменная на время выполнения скрипта?

В bash-скрипте есть
output=$(curl 'https://экзампл.ком/api/json' 2>/dev/null)

Дальнейшее многократное использование этой переменной в скрипте приводит каждый раз к выполнению curl и запросу к сайту или выполнившись один раз, ее вывод сохраняется в оперативной памяти?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 3
@zohan1993
devops
Пользовательские переменные хранят значение до тех пор, пока не завершится выполнение сценария.

Каждый раз при запуске скрипта, вывод команды - "curl 'https://экзампл.ком/api/json' 2>/dev/null" будет назначен переменной - output, и это значение будет использоваться пока скрипт не завершит свою работу.
Ответ написан
@Karpion
Что значит "использование этой переменной"? Если повторно осуществить присваивание - то будет выполнена команда внутри "доллар+скобки". Если же извлекать значение переменной - то будет браться то значение. которое туда занесено при последнем выполненном присваивании.

Значение переменной - хранится то ли до завершения скрипта (передаваясь в программы, запущенные из скрипта - но только если переменную экспортировали), то ли до завершения шелла. Там ест тонкости.
Если постараться - то можно сделать так, чтобы переменная вернулась в родительский шелл - например, во FreeBSD это нужно для работы /etc/rc.conf ; если Вам интересна эта тема, то можете посмотреть в эту сторону.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы