我正在尝试运行简单的代码块。 它在第四行给出错误为“ $ 1附近的语法错误”
=〜表示匹配正则表达式
如何在此运算符中使用'$ 1'变量?
这是我的代码:
if [[ $1 -gt 3 ]] && [[ $1 -lt 7 ]]
then
echo "$1 is between 3 and 7"
elif [[ $1 =~ "Jeff"]] || [[ $1 =~ "Roger" ]] || [[ $1 =~ "Brian" ]]
then
echo "$1 works in the Data Science Lab"
else
echo "You entered: $1, not what I was looking for.."
fi
答案 0 :(得分:2)
确实很有趣。您已在该行中输入第一个条件为[[ $1 =~ "Jeff"]]
,因此"Jeff"
和]]
之间没有空格,bash会将它们解释为单个字符串,这显然不是您的模式,并且整个解析失败,行结构崩溃。如果您添加该空间:
if [[ $1 =~ "Jeff" ]] || [[ $1 =~ "Roger" ]] || [[ $1 =~ "Brian" ]]
然后它起作用了……貌似……