Reg*_*ser 4 unix curl loops zsh
非常简单的要求:每个curl帖子之间有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
Run Code Online (Sandbox Code Playgroud)
睡眠确实会暂停,但增量为 3。
我究竟做错了什么??
谢谢!
当我说增量时,这就是我的意思。
post
post
post
sleep 1
Run Code Online (Sandbox Code Playgroud)
我想要:
post
sleep 1
post
sleep 1
post
sleep 1
Run Code Online (Sandbox Code Playgroud)
在这个 tmp 目录中,只有 3 个文件,但最终会达到 300 个。
您正在使用循环的简短形式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
Run Code Online (Sandbox Code Playgroud)
(您也可以将形成短格式循环主体的构造sleep 1放入其中,但我建议避免使用这种形式,除了交互式 shell 中的快速、一次性循环之外。){...}for