首页 > 解决方案 > 将软件的终端输出发送到文件或 /dev/null

问题描述

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

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

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

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

标签: shellio-redirectiondev-null

解决方案


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

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


推荐阅读