我经常从 shell 程序(在我的情况下为Bash)中执行要立即 fork 的命令,而这些命令的输出我想忽略。实际上,我经常创建一个脚本(silent)来做到这一点:

#!/bin/bash
$@ &> /dev/null &

然后,我可以运行
silent inkscape myfile.svg

并且我的终端不会被我刚刚 fork 的进程的调试输出所污染。

我有两个问题:
  • 是否有一种“官方”方式来执行此操作?即更短但等同于&> /dev/null &的内容?
  • 如果没有,是否可以在silent命令之后使制表符完成工作,好像它不在那儿一样?举个例子,在我键入silent inksc之后,我希望bash在我按silent inkscape时自动完成对[tab]的命令。
  • 最佳答案

    撇开:您可能想在exec "$@" &> /dev/null &脚本中添加silent,以使其放弃子 shell ,而"$@"周围的引号将防止空格妨碍您。

    至于#2:complete -F _command silent应该做一些你想要的事情。 (我将该脚本的版本称为launch,在complete -F launch中包含.bash_profile)

    关于bash - 只需将命令的输出 fork 并将其重定向到/dev/null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8432853/

    10-13 07:24