gpt4 book ai didi

linux kill命令在执行之前

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:55 24 4
gpt4 key购买 nike

我要做的是确保命令在执行之前没有运行(这样它就不会 self 复制)。我读到 && 运算符应该在这里工作,因为只有当第一个命令没有输出任何错误时它才应该执行第二个命令,但在我的例子中它不执行命令。让我演示一下。

假设命令是 ./root/script 1 2 3,我要做的是运行以下命令:pkill -f './root/script 1 2 3' && ./root/script 1 2 3。但最终发生的是第二个命令根本没有被执行,或者 pkill 命令在第二个命令之后被执行,因此也将其杀死。无论哪种方式,我最终都没有运行命令。

您对此事有任何意见吗?我如何确保命令在执行之前尚未运行?

提前致谢!

最佳答案

如果没有匹配的进程,

pkill 的退出状态为 1。这意味着如果没有 ./root/script 1 2 3 实例在运行,pkill 会返回一个 shell 认为是假的非零退出状态,并且&&后面的命令不执行。

您可以按如下方式捕获:

(pkill -f './root/script 1 2 3' || [ $? -eq 1 ]) && ./root/script 1 2 3

$?pkill 调用的退出状态,因此这将测试 pkill 是否返回 0 或 1 并运行 。/root/script 1 2 3 在任何一种情况下。

关于linux kill命令在执行之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com