Как проверить, установлена ​​ли переменная в Bash? - PullRequest
1308 голосов
/ 30 августа 2010

Как узнать, установлена ​​ли переменная в Bash?

Например, как я могу проверить, передал ли пользователь первый параметр функции?

function a {
    # if $1 is set ?
}

Ответы [ 32 ]

0 голосов
/ 18 ноября 2013

Я нашел (намного) лучший код для этого, если вы хотите что-то проверить в $@.

if [[ $1 = "" ]]
then
  echo '$1 is blank'
else
  echo '$1 is filled up'
fi

Зачем это все? Все в $@ существует в Bash, но по умолчанию оно пустое, поэтому test -z и test -n не могут вам помочь.

Обновление: Вы также можете подсчитать количество символов в параметрах.

if [ ${#1} = 0 ]
then
  echo '$1 is blank'
else
  echo '$1 is filled up'
fi
0 голосов
/ 11 мая 2014
[[ $foo ]]

Или

(( ${#foo} ))

Или

let ${#foo}

Или

declare -p foo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...