表达式“< /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/null
returns立即EOF。如果您想阻止应用程序尝试读取其初始标准输入的任何内容,则重定向来自 /dev/null
的输入很有用,例如终端。
当 运行 后台程序通过 SSH 并且您希望 SSH 连接立即关闭时,通常使用此方法。在所有引用它的文件描述符关闭之前,连接不会关闭,因此您重定向所有标准描述符:
ssh servername 'somecommand </dev/null >/dev/null 2>&1 &'
我对重定向比较熟悉,知道 /dev/null 可以用来隐藏输出,例如
some_command > /dev/null
但是我遇到了用法
< /dev/null some_command
在 this ArchWiki 文章中,想了解它的作用。
我的第一个猜测是它等同于
some_command < /dev/null
但是如果这个猜测是正确的,重定向 /dev/null
到一个命令有什么好处?
是的,它们是等价的。 I/O 重定向可以放在命令行的任何地方。
读取时,/dev/null
returns立即EOF。如果您想阻止应用程序尝试读取其初始标准输入的任何内容,则重定向来自 /dev/null
的输入很有用,例如终端。
当 运行 后台程序通过 SSH 并且您希望 SSH 连接立即关闭时,通常使用此方法。在所有引用它的文件描述符关闭之前,连接不会关闭,因此您重定向所有标准描述符:
ssh servername 'somecommand </dev/null >/dev/null 2>&1 &'