我正在使用gnome上的timeout函数等待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

最佳答案

使用带引号参数的子shell包装重定向,这样timeout就看不到它们:

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

关于linux - 在超时内给出命令错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50655759/

10-11 23:20
查看更多