Bash 我可以在同一行中同时使用 AND 和 OR 吗?

Bash 我可以在同一行中同时使用 AND 和 OR 吗?

当我编译代码时,我通常会执行以下操作:

make remake 2> error.txt || less error.txt

然后,如果less没有弹出,我将代码复制到一个exe目录中。

我希望如果编译成功,复制命令会自动执行。例如我可以这样做:

make remake 2> error.txt && cp ./bin/out.out ../exe/out.out

但是,如果编译失败,我就会失去这个有用的功能,即较少弹出错误。

是否可以将两者结合在一起?

明显地

make remake 2> errors.txt || less errors.txt && cp ./bin/out.out ../exe/out.out

将不起作用,因为在编译命令失败的情况下,这&&将导致每次我退出时运行 cp 命令(假设它返回 0)。less

是否有可能在 1 个命令行中完成我想要做的事情?

答案1

给你:

make remake 2> errors.txt && cp ./bin/out.out ../exe/out.out || less errors.txt

相关内容