我正在尝试从Mac上的单个bash脚本同时启动imagesnap
的多个实例。另外,在运行脚本时通过用户输入提供(某些)自变量也很好。
我已连接4个网络摄像头,并希望以给定的间隔从每个摄像机拍摄一系列图像。作为bash脚本的绝对初学者,我不知道从哪里开始搜索。我已经测试了4个imagenap实例在从Terminal手动运行它们时可以很好地工作,但是仅此而已。
总而言之,我正在寻找一个bash脚本,该脚本:
-编辑-
考虑了这一点之后,我对如何使用imagesnap -t x.xx
拍摄间隔图像的能力来组织此脚本有一个模糊的想法:
或
使用子外壳运行imagesnap
如有可能,并行启动每个子脚本或子shell。
由于imagesnap
的每个实例都将运行直到终止,因此如果可以使用单个命令将其全部停止,那就太好了
答案 0 :(得分:0)
以下快速技巧(保存为public async Task<IEnumerable<Album>> GetAlbums(Artist artist)
{
return await myDbContext.Artists
.Include(artist => artist.Tracks)
.ThenInclude(track => track.Album)
.Where(a.Id == artist.Id)
.Select(artist =>
artist.Tracks.Select(track =>
track.Album))
.Distinct()
.ToListAsync();
}
)可能会做正确的事情:
run-periodically.sh
如果将此脚本放置在适当的位置并使其可执行,则可以像这样运行它:
#!/bin/bash
interval=5
start=$(date +%s)
while true; do
# run jobs in the background
for i in 1 2 3 4; do
"$@" &
done
# wait for all background jobs to finish
wait
# figure out how long we have to sleep
end=$(date +%s)
delta=$((start + interval - end))
# if it's positive sleep for this amount of time
if [ $delta -gt 0 ]; then
sleep $delta || exit
fi
start=$((start + interval))
done
但是在测试时,我跑了:
run-periodically.sh imagesnap arg1 arg2
这将导致每sh run-periodically.sh sh -c "date; sleep 2"
秒并行运行四个副本“启动一个显示日期的shell,然后等待几秒钟”。如果您想在不同的工作中运行不同的事物,那么您可能希望将它们显式地放入此脚本或该脚本所调用的另一个脚本中……