shell - 将软件的终端输出发送到文件或 /dev/null
问题描述
我正在使用一个名为 Velvet 的程序(我们在生物信息学中称之为汇编程序)。该软件没有静音或安静模式选项,我有一个脚本多次运行它,导致它使我的终端充满在那一刻对我没有真正意义的文本(打印了大约 100 行文本每次迭代)。
我试图/dev/null
通过这样做发送这个输出:
[Terminal@Session]$ velvet -option1 -option2 -file1 -file2 > /dev/null
然而,这会导致 shell 抱怨分段错误,并且软件实际上根本没有运行。我觉得这是一个语法问题,因为尝试/dev/null
像我一样发送东西可能会干扰预期的软件语法,因此出现错误。我似乎无法在任何地方找到解决方案。我可以使用任何其他语法来重定向输出吗?
解决方案
你的语法很好。Velvet 崩溃了,这不是外壳的错。奇怪和不幸的是,当输出被重定向和发送到终端时,它的运行方式不同,但这不是你做的。程序很少关心 stdout 的重定向位置。> /dev/null
对于 99+% 的程序是安全的。(有时 stderr 也需要被重定向,但这是一个不同的话题。)
Velvet 是否有用于更安静输出的命令行选项?许多程序都有-q
或--quiet
或类似的东西。
推荐阅读
- java - 如何读取File到HashMap,更新HashMap,再更新File
- java - PostMagging 与 spring boot java 到 mysql
- azure - 在天蓝色搜索中索引动态字段
- c++ - (C++) 根据用户输入输入特定模式
- sql - Sql查询在出现时跳过集合中的字母
- php - 如何显示不同名称的用户
- php - 如何将多个变量传递给模态
- javascript - 如何在 javascript .scroll() 之后调用函数
- opencv - 当 CMatrix 转换为 slice 时,Go-vet 抱怨 unsafeptr
- python - 如何简化这个缩写词生成器?