【发布时间】:2018-10-29 16:22:14
【问题描述】:
我正在使用一个名为 Velvet 的程序(我们在生物信息学中称之为汇编程序)。该软件没有静音或安静模式选项,我有一个脚本多次运行它,导致它使我的终端充满在那一刻对我没有真正意义的文本(打印了大约 100 行文本每次迭代)。
我已尝试通过这样做将此输出发送到/dev/null:
[Terminal@Session]$ velvet -option1 -option2 -file1 -file2 > /dev/null
但是,这会导致 shell 抱怨分段错误,并且软件实际上根本没有运行。我觉得这是一个语法问题,因为像我一样尝试将内容发送到 /dev/null 可能会干扰预期的软件语法,因此会出现错误。我似乎无法在任何地方找到解决方案。我可以使用其他语法来重定向输出吗?
【问题讨论】:
-
你知道
stderr,也可以重定向?我不明白段。错了,velvet -option1 -option2 -file1 -file2 > /tmp/velvet1.out 2>/tmp/velvet2.out也有这个吗? -
使用
strace运行可能会提供一些提示,说明问题出在程序的哪个位置以及如何解决问题。 -
您使用的是什么操作系统和外壳?你能分享你运行的确切命令吗?
-
您的方法有效@WalterA,您可以将其发布为答案吗?只是为了补充我在 Debian GNU/Linux 9 上,我的 shell 是 GNU bash 4.4.12(1)。发生段错误时我的命令是
velveth test 31 -fastq.gz -shortPaired -separate R1.fastq.gz R2.fastq.gz > /dev/null -
我发现 velvet 在它自己的测试中做到了这一点。 github.com/dzerbino/velvet/blob/master/tests/…
标签: shell io-redirection dev-null