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

Найти подстроку в переменной оболочки script

У меня есть строка

$VAR="I-UAT"; 

в моем коде оболочки script. Мне нужна условная инструкция, чтобы проверить, присутствует ли "UAT" в этой строке.

Какую команду следует использовать для получения либо истинного, либо ложного логического вывода? Или есть ли другой способ проверить его?

4b9b3361

Ответ 1

Какая оболочка? Использование bash:

if [[ "$VAR" =~ "UAT" ]]; then
    echo "matched"
else
    echo "didn't match"
fi

Ответ 2

Вы можете сделать это следующим образом:

case "$VAR" in
  *UAT*)
   # code when var has UAT
  ;;
esac

Ответ 3

Классический способ, если вы заранее знаете, какую строку вы ищете, - это инструкция case:

case "$VAR" in
*UAT*) : OK;;
*)     : Oops;;
esac

Вместо команды : вы можете использовать соответствующую команду. Это также будет работать с ракетами Bourne и Korn, а не только с Bash.

Ответ 4

В bash script вы можете использовать

if [ "$VAR" != "${VAR/UAT/}" ]; then
  # UAT present in $VAR
fi

Ответ 5

found=`echo $VAR | grep -c UAT`

Тогда тест для $найденного отличным от нуля.

Ответ 6

попробуйте с grep:

$ echo I\-UAT | grep UAT
$ echo $?
0
$ echo I\-UAT | grep UAX
$ echo $?
1

поэтому тестирование

if [ $? -ne 0 ]; then
  # not found
else
  # found
fi