我想每 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 > trn
或printf ''
(更便携(或干脆> trn
(将创建/覆盖具有空内容的"trn"文件(
感谢@CharlesDuffy的启发性评论。有关printf ''
比echo -n
更好的可移植性的信息。
如果您的系统支持watch
命令,那么有这个更简单的选项可以替换整个脚本(注释中的@Qback
watch -n 600 touch trn