gpt4 book ai didi

bash - 简单的 bash 脚本按名称计算正在运行的进程

转载 作者:行者123 更新时间:2023-11-29 09:02:55 25 4
gpt4 key购买 nike

我正在开发一个小的 bash 脚本,它计算具有特定名称的脚本运行的频率。

ps -ef | grep -v grep | grep scrape_data.php | wc -l

是我使用的代码,它通过 ssh 输出 scrape_data.php 运行的次数。例如,当前输出为 3。所以这很好用。

现在我正在尝试制作一个小脚本,当计数小于 1 时它会执行某事

#!/bin/sh


if [ ps -ef | grep -v grep | grep scrape_data.php | wc -l ] -lt 1; then
exit 0

#HERE PUT CODE TO START NEW PROCESS

else

exit 0
fi

上面的脚本是我目前所拥有的,但它不起作用。我收到此错误:

[root@s1 crons]# ./check_data.sh
./check_data.sh: line 4: [: missing `]'
wc: invalid option -- e

我在 if 语句中做错了什么?

最佳答案

您的测试语法不正确,lt 应该在测试括号内:

if [ $(ps -ef | grep -v grep | grep scrape_data.php | wc -l) -lt 1 ]; then

echo launch

else
echo no launch

exit 0
fi

或者你可以测试pgrep的返回值:

pgrep scrape_data.php &> /dev/null

if [ $? ]; then
echo no launch
fi

关于bash - 简单的 bash 脚本按名称计算正在运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393437/

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