【发布时间】:2021-04-10 19:18:28
【问题描述】:
我正在尝试创建一个循环来检查字符串是否包含字符“#”或“”。如果确实包含此内容,则回显“是”,否则回显“否”。
#!/bin/bash
string="#### ## # #### #"
for (( i=0; i<${#string}; i++ )); do
str="${string:$i:1}"
if ["$str"!="#"||"$str"!=" "];
then
echo "No"
break
else
continue
fi
echo "yes"
done
【问题讨论】:
-
你必须重新考虑你的逻辑;每个字符都不等于
#或不等于空格。 -
你有什么问题? Shell脚本不是C;只需使用内置设施,如
case $string in *[ #]*) echo yes;; *) echo no;; esac -
第二个重复链接是代码中实际逻辑错误的规范。