我有一个场景,我需要通过curl命令下载文件,并希望我的脚本在下载第二个之前暂停一段时间。我用过睡眠命令 睡3米 但它不起作用。 任何想法???
提前感谢。
答案 0 :(得分:2)
您确定以正确的方式使用sleep
吗?根据您的描述,您应该将其调用为:
sleep 180
这是你的方式吗?
您可能还需要考虑wget
命令,因为它有一个明确的--wait
标志,因此您可能首先避免使用循环。
答案 1 :(得分:2)
确保您的文本编辑器没有为每个新行添加/ r / n和/ n。如果您在Windows上编写脚本,这是典型的。
使用notepad ++(windows)并转到编辑| EOL约定| UNIX然后保存它。如果你在计算机上遇到它,我已经从这里阅读[talk.maemo.org/showthread.php?t=67836]你可以使用[tr -d" \ r" < oldname.sh> newname.sh]删除问题。如果你想查看它是否有问题请使用[od -c yourscript.sh]和/ r将在任何/ n之前发生。
我看到的其他问题是cd / dir / dir,你得到[cd:1:can&#t; t cd to / dir / dir]或者复制scriptfile.sh newfilename生成的文件名为newfilenameX where X是一个不可见的字符(确保你可以在尝试之前将其删除),如果文件在网络共享上,则Windows机器可以看到该字符。确保它不是成功测试的最后一行。
直到我想出来(我知道我不得不向Google询问可能以各种方式显示的内容)我认为我使用的这个linux版本存在问题(睡眠不能在脚本中工作???)
答案 2 :(得分:1)
while read -r urlname
do
curl ..........${urlname}....
sleep 180 #180 seconds is 3 minutes
done < file_with_several_url_to_be_fetched