bash 每 10 分钟创建一次文件

bash create file every 10 minutes

我想每 10 分钟创建一个文件,文件创建后它将被另一个程序用新名称覆盖,因此应通过以下脚本创建一个新文件:

#!/bin/bash
echo 
while true
do
    cat >> trn 
    echo creating trn
    sleep 600   
done

当我 运行 这样做时,它会创建第一个文件,但不会回显该语句,然后保持循环状态,不再创建任何文件。

不要为此使用 cat >> trn。它实际上阻止了脚本的执行(等待用户输入)!

您可以改用(例如)

  • touch trn>> trn(将创建内容为空的 'trn' 文件,前提是该文件尚不存在)
  • echo > trn(将用一个换行符内容创建/覆盖 'trn' 文件)
  • echo -n > trnprintf ''(更便携)或简单地 > trn(将创建/覆盖空内容的 'trn' 文件)

感谢@CharlesDuffy 的启发性评论。 Info here 关于 printf ''echo -n 更好的可移植性。


如果您的系统支持 watch 命令,那么有一个更简单的选项可以替换您的整个脚本(在评论中归功于@Qback):

watch -n 600 touch trn