📜  保持容器运行而不直接退出 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:50:00.313000             🧑  作者: Mango

保持容器运行而不直接退出 - Shell/Bash

在 Shell/Bash 脚本编程中,经常会有需要保持容器运行而不直接退出的情况,这时候就需要使用类似于无限循环的代码来实现。

无限循环

最基本的无限循环代码如下:

#!/bin/bash

while true
do
  echo "Hello World!"
  sleep 1
done

在这个例子中,我们使用了 while true 的语法来构建一个无限循环,每次循环中均会输出 "Hello World!" 并等待 1 秒钟。

使用 Ctrl + C 结束循环

在使用无限循环时,我们通常需要有一种方式来结束循环,比如在输入 Ctrl + C 的时候退出循环。这时候可以使用 trap 命令来实现:

#!/bin/bash

function cleanup {
  echo "Bye Bye!"
  exit 0
}

trap cleanup INT

while true
do
  echo "Hello World!"
  sleep 1
done

在这个例子中,我们定义了一个 cleanup 函数来输出 "Bye Bye!" 并退出程序,然后使用 trap 命令来捕获 INT 信号(即 Ctrl + C),当接收到 INT 信号时,会自动执行 cleanup 函数。

使用 sleep 命令控制循环频率

上面的例子中,我们使用了 sleep 命令来控制每次循环之间的等待时间,这也是实现无限循环的一种方式。

除了等待一定的时间之外,sleep 命令还可以接受其他的时间单位,比如毫秒(-m)、微秒(-u):

#!/bin/bash

while true
do
  echo "Hello World!"
  sleep 1000ms
done

在这个例子中,我们使用了毫秒作为等待时间单位。

参考链接