Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Существует ли переменная окружения BASH?

#bash


Задача: ввести имя переменной окружения и выяснить существует ли такая переменная.
Мой код скрипта:

echo "Введите имя переменной окружения"
read name
if "$name" == env
then
echo "Переменная $name существует"
else
echo "Переменная $name не существует"
fi


но скрипт отрабатывает неверно мое решение. Понимаю, что неверно определено условие.
Как составить условие на принадлежность переменной окружению?
    


Ответы

Ответ 1



Вариант 1 Использовать grep /usr/bin/env | grep "^${name}=" результат записать в переменную и проверять её на пустоту. Вариант 2 Не используя env проверять просто текущее окружение if [ -v "${name}" ]; then echo "Переменная $name существует" else echo "Переменная $name не существует" fi Ключ -v позволяет проверить существование переменной

Ответ 2



Еще пара вариантов: read -p "Введите имя переменной окружения: " name ... ... NAME="${!name:+Переменная $name не пустая}" echo "${NAME:-Переменная $name пустая}" ... if [[ ${!name} ]] then echo "Переменная $name не пустая" else printf "Переменная $name пустая" fi Не безопасно: ... eval NAME=\$$name if [[ $NAME ]] then echo "Переменная $name не пустая" else echo "Переменная $name пустая" fi

Комментариев нет:

Отправить комментарий