bash每10分钟创建一次文件

时间:2018-01-12 16:04:10

标签: bash cat

我想每10分钟创建一个文件,在创建文件后,它将被另一个程序用新名称覆盖,所以下面的脚本应该创建一个新文件:

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

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

1 个答案:

答案 0 :(得分:3)

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

您可以改为使用(例如)

  • touch trn>> trn(将创建包含空内容的'trn'文件,仅当该文件尚不存在时)
  • echo > trn(将使用一个换行符字符内容创建/覆盖'trn'文件)
  • echo -n > trnprintf ''(更便携)或仅> trn(将使用空内容创建/覆盖'trn'文件)
感谢@CharlesDuffy对他的启发性评论。关于printf ''echo -n更好的可移植性,Info here

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

watch -n 600 touch trn