每5 秒运行一个命令(比如date)并将输出写入文件(比如date.txt)。为了实现这个场景,我们需要直接在命令提示符下运行下面的一个 liner 脚本。
> while true; do date >> date.txt ; sleep 5 ; done &
说明
while true
– 要求脚本在条件为真时运行,它充当一个循环,使命令一次又一次地运行或在循环中。do
– do 执行以下操作,即执行位于 do 语句之前的命令或一组命令。date >> date.txt
– 此处将 date 命令的输出写入文件 date.txt。另请注意,我们使用了>>
而不是>
。>>
确保每次执行脚本时都不会覆盖文件 (date.txt)。它只是附加更改。而>
一次又一次地覆盖文件。sleep 5
- 它要求 shell 在再次执行之前保持 5 秒的时间差。请注意,此处的时间始终以秒为单位。假设你想每 6 分钟执行一次命令,你应该使用 360,连续睡眠。done
– 标记 while 循环的结束。&
– 将整个过程循环到后台。同样,我们可以以相同的方式执行任何脚本。这是在特定时间间隔(例如
100 秒
)后调用脚本的命令,脚本名称为rumenz.sh
.上面的脚本应该运行在被调用脚本所在的目录中,否则需要提供完整路径(
/home/rumenz/rumenz.sh
)。在上述时间间隔调用脚本的语法是:
> while true; do /bin/sh rumenz.sh ; sleep 100 ; done &
上面的一个 liner 不是 Cron 的替代品,因为 Cron 实用程序支持大量选项,相比之下,它非常灵活且可定制。但是,如果我们想运行某些测试用例或 I/O 基准测试,那么上面的 singe 命令就可以达到目的。
组合键 “Ctrl+l” 与 “清除” 命令具有相同的效果。所以从下次使用ctrl+l来清除你的 Linux 命令行界面。
由于ctrl+l是一个组合键,所以我们不能在脚本中使用它。如果我们需要在 shell 脚本中清除屏幕,请调用命令 “clear”,对于我现在能想到的所有其他情况,ctrl+l 就足够了。
> (cd /home/rumenz/)
首先它
cd
到目录rumenz
,然后再次返回主目录一次。
> (cd /home/rumenz/ && ls -l)
-rw-r----- 1 root rumenz 54272 May 3 18:33 text1.txt
-rw-r----- 1 root rumenz 54272 May 3 18:33 text2.txt
-rw-r----- 1 root rumenz 54272 May 3 18:33 text3.txt