类似于在python中如何执行“如果字符串中的字母:”,我试图在bash中模仿它。代码如下:
SYMBOLS="ABC"
msg="alskdfjAasdksdfh!?asdflkjhghrg"
# Loops through each letter in the variable msg individually
for (( i=0; i<${#real_message}; i++ )); do
# Assigns the current letter to the variable
letter="${msg:$i:1}"
# This is the part I have a question about
if [[ $msg == *"$SYMBOLS"* ]]; then
echo "Found."
fi
done
但是,if语句不起作用。应该发生的事情是,只要它抓住一个要存储在变量“字母”中的字符,它就应该检查该字符是否存在于变量“ SYMBOLS”中。
例如,味精中包含字符“ A”,因此当“字母”遍历并到达“ A”时,它应回显“ Found”。指示if语句有效。但是,这显然不起作用,因为我没有正确理解某些内容。只是为了澄清:它不查找包含“ ABC”的子字符串,而是将其存储在“ msg”变量中时查找“ A”,“ B”或“ C”。