我想在固定时间内运行一个命令并将输出保存到文件中。可以使用以下方法将输出保存到文件中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