gpt4 book ai didi

linux - 在 shell 脚本中每秒运行一次 for 循环

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:46 26 4
gpt4 key购买 nike

我试图每秒运行一个程序

for i in {1..3}
do
echo $i `date`
./tt.sh $i &
sleep 1
done

for循环实际上在后台触发了9个循环,有没有办法让程序每秒运行一次

下面是进程信息

root     10455     1  0 23:44 pts/0    00:00:00 /bin/bash ./tt.sh 1
root 10458 10455 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 1
root 10460 10455 3 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 1
root 10692 1 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 2
root 10699 10692 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 2
root 10701 10692 2 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 2
root 10943 1 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 3
root 10953 10943 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 3
root 10955 10943 2 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 3

最佳答案

当你看

root     10455     1  0 23:44 pts/0    00:00:00 /bin/bash ./tt.sh 1
root 10458 10455 0 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 1
root 10460 10455 3 23:44 pts/0 00:00:00 /bin/bash ./tt.sh 1

您可以看到 pid 10455 的 tt.sh 启动了另外两个进程。
tt.sh 已被您的循环启动了 3 次,您可以查看 tt.sh 以了解它为何会产生其他进程。

通过下面的代码,您可以看到脚本仅启动程序 3 次:

for i in {101..103}
do
echo $i `date`
sleep $i &
sleep 1
done

ps -ef 将显示

username    39     1  0 09:05 pts/0    00:00:00 sleep 101
username 42 1 0 09:05 pts/0 00:00:00 sleep 102
username 45 1 0 09:05 pts/0 00:00:00 sleep 103

如果您不希望它们同时运行,请删除 &

关于linux - 在 shell 脚本中每秒运行一次 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56267495/

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