【发布时间】:2013-12-05 13:33:39
【问题描述】:
我有一个场景,我需要通过 curl 命令下载文件,并希望我的脚本在下载第二个之前暂停一段时间。我使用了 sleep 命令,例如 睡眠 3m 但它不工作。 有什么想法???
提前致谢。
【问题讨论】:
-
你能给我们看一些代码吗?
-
“它不工作”不是很具有描述性。
sleep怎么不工作?
我有一个场景,我需要通过 curl 命令下载文件,并希望我的脚本在下载第二个之前暂停一段时间。我使用了 sleep 命令,例如 睡眠 3m 但它不工作。 有什么想法???
提前致谢。
【问题讨论】:
sleep 怎么不工作?
确保您的文本编辑器没有为每个新行添加 /r /n 并且仅添加 /n。如果您在 Windows 上编写脚本,这很典型。
使用 notepad++ (windows) 并进入编辑|EOL 约定|UNIX 然后保存。如果您在计算机上遇到问题,我从这里 [talk.maemo.org/showthread.php?t=67836] 读到您可以使用 [tr -d "\r" newname.sh ] 以消除问题。如果您想查看它是否有问题,请使用 [od -c yourscript.sh] 并且 /r 将出现在任何 /n 之前。
我看到的其他问题是 cd /dir/dir 并且你得到 [cd: 1: can't cd to /dir/dir] 或复制 scriptfile.sh newfilename 结果文件将被称为 newfilenameX 其中 X 是一个不可见的字符(确保在尝试之前可以将其删除),如果文件在网络共享上,Windows 机器可以看到该字符。确保它不是成功测试的最后一行。
直到我弄清楚(我知道我必须向谷歌询问可能以各种方式表现出来的东西)我认为我使用的这个 linux 版本存在问题(睡眠不在脚本中工作???) .
【讨论】:
您确定您以正确的方式使用sleep 吗?根据您的描述,您应该将其调用为:
sleep 180
这是你的做法吗?
您可能还需要考虑wget 命令,因为它有一个明确的--wait 标志,因此您可能会首先避免使用循环。
【讨论】:
while read -r urlname
do
curl ..........${urlname}....
sleep 180 #180 seconds is 3 minutes
done < file_with_several_url_to_be_fetched
?
【讨论】: