Unix Shell脚本:睡眠命令不起作用

时间:2013-12-05 13:33:40

标签: unix command sleep

我有一个场景,我需要通过curl命令下载文件,并希望我的脚本在下载第二个之前暂停一段时间。我用过睡眠命令 睡3米 但它不起作用。 任何想法???

提前感谢。

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