1

我正在使用一个名为 Velvet 的程序(我们在生物信息学中称之为汇编程序)。该软件没有静音或安静模式选项,我有一个脚本多次运行它,导致它使我的终端充满在那一刻对我没有真正意义的文本(打印了大约 100 行文本每次迭代)。

我试图/dev/null通过这样做发送这个输出:

[Terminal@Session]$ velvet -option1 -option2 -file1 -file2 > /dev/null

然而,这会导致 shell 抱怨分段错误,并且软件实际上根本没有运行。我觉得这是一个语法问题,因为尝试/dev/null像我一样发送东西可能会干扰预期的软件语法,因此出现错误。我似乎无法在任何地方找到解决方案。我可以使用任何其他语法来重定向输出吗?

4

2 回答 2

1

你的语法很好。Velvet 崩溃了,这不是外壳的错。奇怪和不幸的是,当输出被重定向和发送到终端时,它的运行方式不同,但这不是你做的。程序很少关心 stdout 的重定向位置。> /dev/null对于 99+% 的程序是安全的。(有时 stderr 也需要被重定向,但这是一个不同的话题。)

Velvet 是否有用于更安静输出的命令行选项?许多程序都有-q--quiet或类似的东西。

于 2018-10-29T16:25:39.637 回答
0

OP 确认我在评论中的提议有效,即使不知道为什么。
您可以将输出重定向到“正常”文件

velvet -option1 -option2 -file1 -file2 > /tmp/velvet1.out 2>/tmp/velvet2.out
于 2018-10-29T19:30:30.033 回答