gpt4 book ai didi

linux - 从一个脚本同时执行多个 bash 脚本?

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:30 25 4
gpt4 key购买 nike

我想制作一个 bash 脚本,它将同时执行大约 30 个左右的其他脚本,这 30 个脚本都有 wget 命令遍历某些列表。

我想用屏幕做点什么(发送 ctrl + shift + a + d)或将脚本发送到后台,但我真的不知道该怎么做。

总结一下:1 个主脚本执行将同时触发所有其他 30 个脚本执行。

PS:我看过其他问题,但我不太明白它是如何工作的,或者它们比我需要的要多一点(期待返回值等)

编辑:脚本的一小段(这部分是使用我指定的配置参数执行的部分)

if [ $WP_RANGE_STOP -gt 0 ]; then
#WP RANGE
for (( count= "$WP_RANGE_START"; count< "$WP_RANGE_STOP"+1; count=count+1 ));
do
if cat downloaded.txt | grep "$count" >/dev/null
then
echo "File already downloaded!"
else
echo $count >> downloaded.txt
wget --keep-session-cookies --load-cookies=cookies.txt --referer=server.com http://server.com/wallpaper/$count
cat $count | egrep -o "http://wallpapers.*(png|jpg|gif)" | wget --keep-session-cookies --load-cookies=cookies.txt --referer=http://server.com/wallpaper/$number -i -
rm $count
fi

最佳答案

可能最直接的方法是使用 xargs -PGNU parallel .为主脚本中的每个 child 生成不同的参数。为简单起见,假设您只想一次下载一堆不同的内容。无论是

xargs -P 30 wget < urls_file
parallel -j 30 wget '{}' < urls_file

将从给定输入产生多达 30 个具有不同 args 的同时 wget 进程。如果您提供有关要运行的脚本的更多信息,我也许可以提供更具体的示例。

xargs 相比,Parallel 有一些更复杂的调整选项,例如自动跨核心或 cpus 拆分作业的能力。

如果您只是想并行运行一堆异构的不同 bash 脚本,请在其自己的文件中定义每个单独的脚本,然后使每个文件可执行并将其传递给并行:

$ cat list_of_scripts
/path/to/script1 arg1 arg2
/path/to/script2 -o=5 --beer arg3

/path/to/scriptN

然后

parallel -j 30 < list_of_scripts

关于linux - 从一个脚本同时执行多个 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22925570/

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