我经常从 shell(在我的例子中是 Bash)中执行我想立即 fork 的命令并且我想忽略其输出。事实上,我经常创建一个脚本(silent
)来执行此操作:
#!/bin/bash
$@ &> /dev/null &
然后我可以运行,例如
silent inkscape myfile.svg
我的终端不会被我刚刚 fork 的进程的调试输出污染。
我有两个问题:
是否有一种“官方”方式来执行此操作?即更短但等效于
&>/dev/null &
的方法?如果没有,有没有办法让制表符补全在我的
silent
命令后正常工作,就好像它不存在一样?举个例子,在我输入silent inksc
之后,我希望 bash 在我按下[tab] 时自动完成我对
.silent inkscape
的命令
最佳答案
旁白:可能想在你的silent
脚本中exec "$@"&>/dev/null &
,让它丢弃子shell,并且"$@"
周围的引号将防止空格妨碍。
至于 #2:complete -F _command silent
应该做您想要的事情。 (我将该脚本的版本称为 launch
并且在我的 .bash_profile
中有 complete -F launch
)
关于bash - 简单地将命令的输出 fork 并重定向到/dev/null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432853/