在超时内给出命令错误

时间:2018-06-02 10:07:23

标签: linux bash shell timeout

我正在使用gnome上的超时功能等待我的脚本1秒钟,该脚本读取来自inp.txt的输入。我需要将脚本的输出写入out.txt,所以我这样编码

timeout 1 myscript < inp.txt > out.txt

我遇到的问题是,如果myscript失败(分段错误等),它会将错误打印到屏幕上。我想把这些消息保存在Error.log之类的内容中,但我不知道如何做到这一点 我试过了

timeout 1 myscript < inp.txt > out.txt 2> Error.log

但它给了我这个而不是myscript的错误。

timeout: the monitored command dumped core

1 个答案:

答案 0 :(得分:0)

使用带引号参数的子shell来包装重定向,以便timeout看不到它们:

timeout --preserve-status 1  sh -c 'exec myscript < inp.txt > out.txt 2> Error.log'