Bcm43142 driver wifi open-suse

Возврат ненулевого статуса выхода (failure) при неудачной печати содержимого переменной окружения кажется мне правильным. Это соответствует поведению одноименной встроенной программы tcsh и историческим реализациям на BSD.

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

Если вы хотите избежать эффекта set -e/set -o errexit, используйте:

var=$(printenv VAR) || : Do not care if it fails

Или:

if var=$(printenv VAR); then
  if [ -z "$var" ]; then
    echo "VAR is set but empty or consists only of newline characters"
  else
    echo "VAR is set and non-empty"
  fi
else
  echo "VAR is not in the environment"
fi

Также обратите внимание, что все оболочки инициализируют переменные оболочки из соответствующих переменных окружения (для тех, которые могут быть отображены в переменные оболочки, а некоторые оболочки обрезают другие), поэтому вы можете использовать $VAR в вашем скрипте для ссылки на их значение (обратите внимание, однако, что в оболочках Bourne, csh или tcsh (единственные оболочки, в которых вы можете захотеть использовать эти `. ...` ваших), значения переменных shell и env var могут расходиться, если вы измените переменную shell без ее экспорта (или присвоите ее с помощью setenv для (t)csh)).

2
14.07.2016, 19:11
0 ответов

Теги

Похожие вопросы