bash - 应为条件二元运算符 : syntax error near `$1'

标签 bash shell

我正在尝试运行简单的代码块。 它在第四行给出错误“`$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

最佳答案

确实很有趣。您已在该行中输入第一个条件 [[ $1 =~ "Jeff"]] ,因此 "Jeff" 之间没有空格和]] bash 将它们解释为单个字符串,这显然不是您的模式,整个解析失败并且行结构崩溃。如果添加该空格:

if [[ $1 =~ "Jeff" ]] || [[ $1 =~ "Roger" ]] || [[ $1 =~ "Brian" ]]

然后就可以了...看起来...

关于bash - 应为条件二元运算符 : syntax error near `$1' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53481876/

相关文章:

arrays - 使用换行符将 bash 数组写入文件

linux - Ash MATCH 运算符 (=~)

linux - 在输出中,echo 命令在打印变量之后打印新行

linux - 检查shell脚本得到什么样的参数

即使脚本执行完成,Java 也会挂起

bash - 如何在posix环境中运行bash shell脚本?

bash - 将多个参数传递给 UNIX shell 脚本

Shell 中断 while-true 循环

bash - 如何检测 docker run 和底层守护程序是否以编程方式完全启动?

Git:在接收后移动文件夹