Ответ 1
Какая оболочка? Использование bash:
if [[ "$VAR" =~ "UAT" ]]; then
echo "matched"
else
echo "didn't match"
fi
У меня есть строка
$VAR="I-UAT";
в моем коде оболочки script. Мне нужна условная инструкция, чтобы проверить, присутствует ли "UAT"
в этой строке.
Какую команду следует использовать для получения либо истинного, либо ложного логического вывода? Или есть ли другой способ проверить его?
Какая оболочка? Использование bash:
if [[ "$VAR" =~ "UAT" ]]; then
echo "matched"
else
echo "didn't match"
fi
Вы можете сделать это следующим образом:
case "$VAR" in
*UAT*)
# code when var has UAT
;;
esac
Классический способ, если вы заранее знаете, какую строку вы ищете, - это инструкция case
:
case "$VAR" in
*UAT*) : OK;;
*) : Oops;;
esac
Вместо команды :
вы можете использовать соответствующую команду. Это также будет работать с ракетами Bourne и Korn, а не только с Bash.
В bash
script вы можете использовать
if [ "$VAR" != "${VAR/UAT/}" ]; then
# UAT present in $VAR
fi
found=`echo $VAR | grep -c UAT`
Тогда тест для $найденного отличным от нуля.
попробуйте с grep:
$ echo I\-UAT | grep UAT
$ echo $?
0
$ echo I\-UAT | grep UAX
$ echo $?
1
поэтому тестирование
if [ $? -ne 0 ]; then
# not found
else
# found
fi