我尝试将参数与某些数组内容匹配。在if子句应该为true,但事实并非如此。在比较之前的输出中,我得到了:
VAL:drei_01 AND:drei
#!/bin/bash
array=( null_01 eins_01 zwei_01 drei_01 vier_01 )
lookarr() {
maxc=${#array[@]}
mbool=0
for((i=0; i<$maxc; i++))
do
val=${array[$i]}
echo "VAL: $val AND: $1"
if [[ $1 == *" $val "* ]]; then
echo "TESTENTRY1"
#do something
mbool=1
break
fi
done
if [[ $mbool -eq 0 ]]; then
echo "TESTENTRY2"
#do something else
fi
}
lookarr drei
谢谢
您的if语句不匹配,因为它是从前到后且具有多余的空格。为了使drei与drei_01相匹配,您可以将if语句替换为:
if [[ "$val" == *"$1"* ]]; then