我正在像这样运行一个bash脚本:
for i in {0..3250000..50000} do wget "http://xxx/select?q=*:*&row_size=50000&start=$i" -O $i.csv done
每次发送请求时,我都必须等待完成并写入文件,然后继续循环。 不过,我想要asynchronous做到这一点。 我的意思是它会发送一个请求和循环,而不用等待响应。 然而,当一个响应来到它将做适当的事情。
我怎样才能做到这一点?
为命令设置LD_PRELOAD环境variables,而不input完整path
格式输出从Unix“脚本”命令:删除后退,换行和删除的字符?
当把输出保存到一个variables中时,所有的换行符都被删除
如何在shell脚本中保留带有回显的主要空格?
无法在当前目录中获取脚本
将bashExpression式传递给AWK进行浮点运算
在bash中将可读的人转换为字节
如何获得在linux中的两个文件之间的差异(只有补充)
linuxfind具有相似名称的文件,并移动到新目录
Bash sed用文件内容replace文本
你可以使用xargs :
printf '%s' {0..50000..3250000} | xargs -0 -I {} -n 1 -P 20 wget 'http://xxx/select?q=*:*&row_size=50000&start={}' -O {}.csv
-0选择NulL字符作为分隔符, -I {}用参数替换{} , -n 1将单个参数交给wget , -P 20并行处理20个请求。
或者,您可以追加一个&到您的命令行在后台执行,并wait进程完成。
您可以通过以下方式执行它。 &在后台执行命令。
<cmd> &
但是你的循环看起来很大,而且会在后台运行。 控件将被返回到脚本。 所以为了避免执行问题,你应该写一些函数来检查后台 *** 作是否已经退出。
总结以上是内存溢出为你收集整理的使用Bash脚本的multithreading编程全部内容,希望文章能够帮你解决使用Bash脚本的multithreading编程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)