zsh睡眠辅助循环

时间:2014-11-20 17:25:40

标签: loops unix curl zsh

非常简单的请求:每个卷发帖之间暂停1秒

#!/usr/local/bin/zsh
while true
do
 for p (**/*.xml) {curl -X POST -H "Content-Type:application/xml"  -d @"${p}" "https://url/postAPI" > "post_${p}"}
     sleep 1
 done

睡眠暂停,但增量为3.

我做错了什么?

谢谢!

当我说增量时,这就是我的意思。

post
post
post
sleep 1

我希望:

post
sleep 1
post
sleep 1
post
sleep 1

在这个tmp目录中,只有三个文件,但最终它们将是300个。

1 个答案:

答案 0 :(得分:3)

您正在使用for循环的简短形式,因此只有{ curl ... }命令才能形成循环体; sleep 1循环后发生for。相反,请确保sleep命令位于for循环体中

while true
do
   for p in **/*.xml; do
       curl -X POST -H "Content-Type:application/xml"  -d @"${p}" "https://url/postAPI" > "post_${p}"
       sleep 1
   done
done

(您也可以将sleep 1置于构成短格式{...}循环体的for构造内,但我建议您避免使用该格式,快速,一次性在交互式shell中循环。)