作业帮 > 综合 > 作业

Linux bash/sh/shell编程中的if语句应该怎么写

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/13 22:39:48
Linux bash/sh/shell编程中的if语句应该怎么写
我写了如下的语句:
### start
line="abc"
$REGEXP="^[#]"
if [[ $line $REGEXP ] && [ $line = '' ]]; then
## do something
fi
### end
执行时不正确,抛出语法错误
请问这个语句为什么不正确?应该怎么在if语句中加入两个判断条件?
line="#abcmatch BCD"
REGEXP="^[#]"
# 变量赋值不需要前缀$
if [[ $line =~ $REGEXP ]] && [[ $line != '' ]]; then
#粗心 [[ ]] 要配对使用 你写成了 [[ ] [ ]]
true #shell 不能使用空的if 结构,至少要有一个命令. 可以使用true命令 .
echo yes
else
echo NO
fi
### end
另外Bash 不支持完全的正则表达式.[[ “$line” =~ “$REGEXP” ]] 不能达到你想要的效果.
需要使用echo "$string"| grep -qP /regexp/
Zsh 支持完整的正则表达式, [[ “$line” =~ “$REGEXP” ]] 能达到你想要的效果.