sleep命令使您的Linux计算机什么都不做。也许与直觉相反,但有时需要一段时间的不活动。本文将向您展示如何有效地使用这个bashshell命令。
利用睡眠很容易。在命令行中键入sleep、空格、数字,然后按Enter键。
sleep 5光标将消失5秒钟,然后返回。怎么搞的?在命令行上使用sleep会指示Bash在您提供的时间内暂停处理。在我们的例子中,这是5秒。
我们可以用几天、几小时、几分钟以及几秒钟来计算睡眠时间。要做到这一点,请使用带有持续时间的后缀d、h、m或s。要使睡眠暂停1天4小时7分5秒,请使用以下命令:
sleep 1d 4h 7m 5ss后缀(秒)是可选的。如果没有后缀,睡眠将把任何持续时间都视为秒。假设你想让睡眠暂停5分20秒。此命令的一种正确格式是:
sleep 5m 20Advertisement
如果您忘记在分钟持续时间上提供m后缀,您将指示睡眠暂停5秒,然后再暂停20秒。所以睡眠会暂停25秒。
许多命令要求您按特定顺序提供参数,但sleep是非常宽容的。你可以提供他们在任何顺序和睡眠将有意义的他们。也可以提供浮点数作为参数。例如,0.5小时是一个有效的方式来表示您希望睡眠暂停半小时。
以下所有命令(越来越古怪)都告诉sleep暂停10秒钟。
sleep 10 sleep 5 5s Sleep 1 1 1s 1 1 1s 1 2 sleep 0.16667msleep命令可用于在执行命令之前暂停。此命令将暂停15秒,然后发出哔哔声。
sleep 15 && echo -en '\007'可以使用sleep在两个命令之间暂停。此命令将列出文档目录中的文件,暂停5秒钟,然后将当前工作目录更改为主目录:
ls -R ~/Documents && sleep 5 && cd ~您可以在shell脚本中使用sleep命令来暂停脚本的执行一段精确的时间。通常,这样做是为了在脚本继续处理之前让某个进程有足够的时间完成。您还可以使用它来对脚本向另一个资源发出的请求进行速率限制。
Advertisement
为了准确地演示这一点,下面是一个使用curl调用googleweb服务的脚本。当您使用一本书的ISBN号查询web服务时,它会以一堆关于该书的JSON数据作为响应。我们可以通过jq实用程序来解析数据,以检索书名。为了使脚本不会对web服务施加压力,它会在web请求之间休眠一秒钟。
创建一个包含以下文本的文件,并将其另存为check\ u book.sh。
#!/bin/bash for book in `cat $1` do echo $book":" curl -s https://www.googleapis.com/books/v1/volumes?q=i**n:$book | jq '.items | .[] | .volumeInfo.title' echo "" sleep 1 done echo "All done."键入以下命令以设置执行权限并使脚本可执行。
chmod +x check_book.sh该脚本需要curl和jq实用程序。如果您使用的是Ubuntu或其他基于Debian的发行版,请使用apt-get将这些软件包安装到您的系统上。在其他Linux发行版上,请改用Linux发行版的包管理工具。
sudo apt-get install curl sudo apt-get install jq创建一个包含以下数字的文本文件,并将其另存为books.txt。
9781565921276 9781874416685 9781565921672 9780521431088 9781491941591运行check_book.sh脚本并将books.txt文件作为参数传入。
./check_book.sh books.txtAdvertisement
每隔一秒钟向googleweb服务发出请求。书名将在查询每个ISBN编号后不久出现。
那就是睡觉的全部了。check_book.sh脚本的内部工作超出了本文的范围。选择这个脚本纯粹是为了说明sleep命令的有效使用。如果您想阅读关于脚本的两个主要组件的更多信息,请参阅curl项目页面和jq联机手册。
...bash是什么、不同的模式(交互式和非交互式)以及它是如何产生的基础知识开始,这个站点提供了一个全面的背景知识来帮助您理解命令行的机制。 ...
... 第一行告诉运行这个程序的人如何运行它(即使用bash解释器)。第二个命令与您在命令行中输入的任何其他命令一样。将该文件另存为hello_世界.sh,然后: ...
...改其目录,您可以控制他们可以访问哪些命令。下面介绍如何在Linux上设置受限shell。 受限炮弹 受限shell不是另一个shell。这是标准外壳的另一种模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下启动。在本文中,我们将...
...建集成服务的过程,甚至与杂志进行对话。 本教程演示如何设置启动系统时启动的系统服务。要在登录时启动图形程序,请改用桌面的启动管理器。 启动时运行程序 有时,您在计算机上安装的软件会将自己连接到Linux启动过...
Bash不是唯一的Linux shell。很容易尝试其他的shell,比如非常流行的Zsh。找到一个您喜欢的shell后,使用chsh命令将其设置为默认shell。我们会教你怎么做。 为什么贝壳很重要 shell位于您和操作系统之间。它在终端窗口内提供环境...
Linux上有多种类型的环境变量。了解如何查看它们,为本地和远程登录创建它们,并使它们在重新启动后仍然有效。 环境变量的工作原理 启动终端窗口及其内部的shell时,会引用一组变量,以确保shell配置正确。这些变量还确...
...给它: drink_of-the_Year="$my_boost $this_year" echo drink_of_the-Year 如何在脚本中使用变量 如果没有变量,脚本将完全无法运行。变量提供了灵活性,使脚本成为通用的解决方案,而不是特定的解决方案。为了说明这一区别,这里有一个...