Shell Обусловленные проблемы - PullRequest
1 голос
/ 26 января 2012

Я искал и пробовал множество решений, но, будучи новичком в оболочке, я потерян. Я устанавливаю переменную в один .sh, вызываю секунду, а затем пытаюсь определить, является ли она истинной или нет.

testA.sh
#!/bin/sh

DB=1
. testB.sh

------------------------------------

testB.sh

if ${DB}==1; then
echo "DB is on"
fi

Я получаю 1 == 1 команда не найдена.

Ответы [ 4 ]

5 голосов
/ 26 января 2012

должно быть:

if [[ "$DB" = "1"]]; then

или

if [[ $DB -eq 1 ]]; then
2 голосов
/ 26 января 2012

Это не так, как вы тестирование на равенство в Bash ...

1 голос
/ 26 января 2012

, если вы хотите проверить, установлена ​​ли переменная или нет, стандартным способом является:

if test "${DB+set}" = set; then
  # here, $DB is set
fi

Если вы хотите проверить, установлена ​​ли она для определенного строкового значения, используйте:

if test "$DB" = value; ...

, если вы хотите проверить конкретное целочисленное значение:

if test "$DB" -eq 4; ...

Последняя форма выдаст сообщение об ошибке, если DB является строковым значением, которое не похоже на целое число.

0 голосов
/ 26 января 2012
testB.sh

if test ${DB} == 1; then
echo "DB is on"
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...