我正在使用一个名为Velvet(在生物信息学中称为汇编程序)的程序。该软件没有静默模式或静默模式选项,并且我有一个脚本可以运行几次,从而使该终端饱和那段对我而言毫无意义的文本(大约打印了100行文本)每次迭代)。
我已尝试通过以下方式将此输出发送到/dev/null
:
[Terminal@Session]$ velvet -option1 -option2 -file1 -file2 > /dev/null
但是,这导致Shell抱怨分段错误,并且该软件实际上根本没有运行。我觉得这是一个语法问题,因为像我一样尝试将内容发送到/dev/null
可能会干扰预期的软件语法,因此会出现错误。我似乎在任何地方都找不到解决方案。我可以使用其他语法来重定向输出吗?
答案 0 :(得分:1)
您的语法很好。 Velvet崩溃了,这不是外壳的问题。奇怪和不幸的是,输出重定向和发送到终端时,它的运行方式不同,但这不是您要做的。程序很少关心将stdout重定向到何处。 > /dev/null
对于99%以上的程序都是安全的。 (有时还需要重定向stderr,但这是一个不同的主题。)
Velvet是否具有命令行选项以实现更安静的输出?许多程序具有-q
或--quiet
或类似的东西。
答案 1 :(得分:0)
OP确认了我的提案中的提议奏效了,即使不知道为什么。
您可以使用以下命令将输出重定向到“普通”文件
velvet -option1 -option2 -file1 -file2 > /tmp/velvet1.out 2>/tmp/velvet2.out