#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
Комментариев нет:
Отправить комментарий