为什么有些程序在从终端调用时返回,而其他程序仅在包含“&”时返回

SDG*_*SDG 5 command-line

Skype 和 Tixati 等程序可以直接从终端调用,而无需&在通话结束时添加。为什么 Firefox 不是这种情况。我只是好奇我需要将&选项添加到哪些程序。

Han*_*nnu 13

这完全取决于软件的编写方式,通常也取决于它的意图。

大多数 bash(= shell,终端)实用程序旨在“同步”使用,这些执行旨在产生结果;这可能是脚本或手动过程中的以下命令所必需的 - 如果实用程序(程序、软件)分离并立即让您处于提示状态,您将不知道结果何时或是否可用。

Skype 通常不用作命令行“实用程序”,而是用于处理通信(电话或其他)的工具。然后如果它不阻塞终端,如果从那里启动,它会非常方便。

从终端分离:https :
//superuser.com/questions/178587/how-do-i-detach-a-process-from-terminal-entirely


ter*_*don 9

所有程序都可以在没有&. 该&完全是可选的。它所做的只是将进程发送到后台,以便您可以继续使用终端。

没有它,如果您从终端启动一个进程,您将需要等到该进程完成(或关闭)才能继续使用您的终端。因此,人们经常运行程序command &,将它们发送到后台并继续在同一终端中工作。

有关喜欢的各种 shell 运算符&及其作用的更多信息,请参见此处