LINUX.ORG.RU

Как проверить, определена ли переменная среды в скриптах на .sh и .csh?


0

1

Я написал по аналогии два инициализационных скрипта

Вот на csh:


if ( «${pythonpath}» !~ */opt/g2p/lib/python2.6/site-packages/* ) then
set pythonpath = ( /opt/g2p/lib/python2.6/site-packages/ $pythonpath )
endif


А вот на sh:


if ! echo ${PYTHONPATH} | /bin/grep -q /opt/g2p/lib/python2.6/site-packages/ ; then
PYTHONPATH=/opt/g2p/lib/python2.6/site-packages/:${PYTHONPATH}
fi

Но они ничего не делают. Я думаю, что это потому, что переменная PYTHONPATH вообще не задана к началу их работы.

Подскажите плиз, как добавить к операторам if проверку, что переменная не задана совсем?

Спасибки.



Последнее исправление: Dims2000 (всего исправлений: 1)
Ответ на: комментарий от edigaryev

Спасибо!

По-видимому, дело в другом — у меня переменная не устанавливается даже если я её тупо устанавливаю присваиванием....

Dims2000
() автор топика
Ответ на: комментарий от Dims2000

вам наверное в ~/.profile надо добавить

export PYTHONPATH=«/path/to/python»

Bad_Habit
()

Dims2000исправлений: 1> Вот на csh:

if ($?pythonpath) then
  echo "pythonpath defined"
else
  echo "pythonpath NOT defined"
endif
sdio ★★★★★
()
Ответ на: комментарий от Dims2000

Dims2000> у меня переменная не устанавливается даже если я её тупо устанавливаю присваиванием....

Ты наверное проверяешь переменную в консоли после запуска скрипта?

sdio ★★★★★
()
Ответ на: комментарий от kulti

Я не делаю export потому что в других файлах (из системной поставки) его нет.

Dims2000
() автор топика
Ответ на: комментарий от sdio

Нет, я выхожу-вхожу, причём PATH у меня срабатывает, а точно так же написанный PYTHONPATH — нет

Dims2000
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.