Linux bash/sh/shell编程中的if语句应该怎么写我写了如下的语句:### startline="abc"$REGEXP="^[#]"if [[ $line $REGEXP ] && [ $line = '' ]]; then## do somethingfi### end执行时不正确,抛出语法错误请问这个语句为什么
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 22:19:08
Linux bash/sh/shell编程中的if语句应该怎么写我写了如下的语句:### startline="abc"$REGEXP="^[#]"if [[ $line $REGEXP ] && [ $line = '' ]]; then## do somethingfi### end执行时不正确,抛出语法错误请问这个语句为什么
Linux bash/sh/shell编程中的if语句应该怎么写
我写了如下的语句:
### start
line="abc"
$REGEXP="^[#]"
if [[ $line $REGEXP ] && [ $line = '' ]]; then
## do something
fi
### end
执行时不正确,抛出语法错误
请问这个语句为什么不正确?应该怎么在if语句中加入两个判断条件?
Linux bash/sh/shell编程中的if语句应该怎么写我写了如下的语句:### startline="abc"$REGEXP="^[#]"if [[ $line $REGEXP ] && [ $line = '' ]]; then## do somethingfi### end执行时不正确,抛出语法错误请问这个语句为什么
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” ]] 能达到你想要的效果.