在固定时间内运行命令并在文件中获取输出

在固定时间内运行命令并在文件中获取输出

我想在固定时间内运行一个命令并将输出保存到文件中。可以使用以下方法将输出保存到文件中command > file

并且可以通过 限制命令仅在固定时间运行来完成timeout 10 command

timeout 10 command > file没有在文件中给出任何输出。

答案1

引用评论:

命令 echo bar 终止所需的时间不到 10 秒。因此超时基本上什么都不做。因此它正在写入文件。尝试运行超过 10 秒的命令并为其设置超时 10。然后它不会在文件中产生输出

这意味着您正在使用不同的命令进行测试。遗憾的是,您没有提供要尝试运行的确切命令。

尝试运行此工作示例。如果它能工作,则说明您的命令有问题。可能是因为它根本没有生成输出,或者输出时间超过了超时时间。

foo.sh:

#!/bin/bash
while :
  do
  echo foo;
  sleep 2
done

命令:

timeout 10 ./foo.sh > foo.txt

foo.txt:

foo
foo
foo
foo
foo

相关内容