表达式“< /dev/null some_command”有什么作用?

What does the expression "< /dev/null some_command" do?

我对重定向比较熟悉,知道 /dev/null 可以用来隐藏输出,例如

some_command > /dev/null 

但是我遇到了用法

< /dev/null some_command

this ArchWiki 文章中,想了解它的作用。

我的第一个猜测是它等同于

some_command < /dev/null

但是如果这个猜测是正确的,重定向 /dev/null 到一个命令有什么好处?

是的,它们是等价的。 I/O 重定向可以放在命令行的任何地方。

读取时,/dev/nullreturns立即EOF。如果您想阻止应用程序尝试读取其初始标准输入的任何内容,则重定向来自 /dev/null 的输入很有用,例如终端。

当 运行 后台程序通过 SSH 并且您希望 SSH 连接立即关闭时,通常使用此方法。在所有引用它的文件描述符关闭之前,连接不会关闭,因此您重定向所有标准描述符:

ssh servername 'somecommand </dev/null >/dev/null 2>&1 &'