![为什么在 &&(and) 之前使用 &(bg) 在 bash 脚本中给出错误](https://linux22.com/image/220870/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20%26%26(and)%20%E4%B9%8B%E5%89%8D%E4%BD%BF%E7%94%A8%20%26(bg)%20%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%BB%99%E5%87%BA%E9%94%99%E8%AF%AF.png)
[[ -n $program ]] && echo "$program" && setsid $program "$arg" & && exit 0
给我“意外标记‘&&’附近的语法错误”
[[ -n $program ]] && echo "$program" && { setsid $program "$arg" & } && exit 0
工作正常
有人可以帮助我理解这里使用括号有什么区别吗
答案1
引用 Bash 手册页:
列表是由一个或多个管道组成的序列,由一运算符
;
,&
,&&
, 或||
,并且可选地由;
,&
, 或之一终止<newline>
。
因此我假设它的解析器将视为& &&
语法错误。