我有一个字符串
$VAR="I-UAT";
在我的shell脚本代码中。我需要一个条件语句来检查该字符串中是否存在"UAT"
。
我应该使用什么命令来获得true或false boolean作为输出? 或者还有其他检查方法吗?
答案 0 :(得分:21)
什么外壳?使用bash:
if [[ "$VAR" =~ "UAT" ]]; then
echo "matched"
else
echo "didn't match"
fi
答案 1 :(得分:8)
你可以这样做:
case "$VAR" in
*UAT*)
# code when var has UAT
;;
esac
答案 2 :(得分:5)
经典的方式,如果你提前知道你正在寻找什么字符串,那就是case
声明:
case "$VAR" in
*UAT*) : OK;;
*) : Oops;;
esac
您可以使用适当的命令代替:
命令。这也适用于Bourne和Korn的外壳,而不仅仅是Bash。
答案 3 :(得分:1)
在bash
脚本中,您可以使用
if [ "$VAR" != "${VAR/UAT/}" ]; then
# UAT present in $VAR
fi
答案 4 :(得分:1)
尝试使用grep:
$ echo I\-UAT | grep UAT
$ echo $?
0
$ echo I\-UAT | grep UAX
$ echo $?
1
所以测试
if [ $? -ne 0 ]; then
# not found
else
# found
fi
答案 5 :(得分:1)
found=`echo $VAR | grep -c UAT`
然后测试$ found非零。