Подтвердить что ты не робот

Csh идиомы для проверки существования переменной среды?

У меня есть несколько скриптов csh, где мне нужно проверить, что определенные переменные среды установлены до начала работы, поэтому я делаю такие вещи:

if ! $?STATE then
    echo "Need to set STATE"
    exit 1
endif

if ! $?DEST then
    echo "Need to set DEST"
    exit 1
endif

который много печатает. Есть ли более элегантная идиома для проверки того, уже установлена ​​ли переменная среды?

Примечания:

  • Этот вопрос довольно схож, но конкретно спрашивает о решениях в bash.
  • Я не ищу, чтобы люди советовали мне держаться подальше от csh, потому что это было проклято, страшно или bash. Меня особенно интересует более элегантное решение, чем то, что я сейчас использую.
4b9b3361

Ответ 1

Я думаю, что вы это делаете (оператор if с условием, использующим синтаксис $?VAR, который оценивает 1, если переменная установлена, и 0 в противном случае), вероятно, является наиболее идиоматическим csh построить то, что вы хотите.

Ответ 2

Попробуйте следующее:

[ -z STATE ] && echo "Need to set STATE"

[ ! -z DEST  ] && echo "Need to set STATE"