gpt4 book ai didi

带 sleep 的 Linux Bash 无限循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:18 27 4
gpt4 key购买 nike

我正在运行 Bash 脚本来执行 PHP 文件。

while true
do
date1=$(date +%s%N | cut -b1-13)
php /var/www/html/sprint/yii hello/validate
wait
date2=$(date +%s%N | cut -b1-13)
diff=$(($date2-$date1))
echo "$diff ms"
done

diff 以毫秒为单位返回执行时间。

我现在如何确保脚本休眠

1200 - diff ms

确保 PHP 脚本每小时最多只被调用 3000 次?

最佳答案

首先,您需要一个 sleep ,就像 GNU coreutils 中的 sleep 一样,它可以理解小数秒。如果你的是,那么:

sleep $(echo "1.2 - $diff/1000" | bc -l)

或者,您的循环可以简化为:

while true
do
date1=$(date +%s%N)
php /var/www/html/sprint/yii hello/validate
wait
date2=$(date +%s%N)
sleep $(echo "1.2 - ($date2-$date1)/1000000000" | bc -l)
done

另一方面,如果我们想打印耗时:

while true
do
date1=$(date +%s%N)
php /var/www/html/sprint/yii hello/validate
wait
diff=$(echo "($(date +%s%N) - $date1)/1000000" | bc -l)
echo "That took $diff milliseconds."
time sleep $(echo "1.2 - ($diff)/1000" | bc -l)
done

关于带 sleep 的 Linux Bash 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32706621/

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