我理解> /dev/null
将事物重定向到/dev/null
像黑洞一样的地方。不过,我不明白什么< /dev/null
意思。我看到一些脚本是这样写的:
nohup myprogram > foo.out 2> foo.err < /dev/null &
那么,< /dev/null
上面代码中的含义是什么?
这是一个例子哪里有建议
答案1
它确保所有 I/O 流都被占用/占用。
这样,后台进程就不会与终端“绑定”任何内容,因此您可以继续自己的业务,而无需程序尝试从 TTY 读取数据,否则会导致终端挂起。
在本例中,由于您是从 shell 脚本通过 ssh 启动进程,因此可以确保脚本可以不受阻碍地运行。
答案2
program </dev/null
意味着program
正在通过文件描述符 0(即 STDIN)从文件 获取其输入参数(可以是选项的输入参数,也可以是要操作的输入文件)/dev/null
。
正如您所知,/dev/null
不包含任何内容,它会在读取时通知 EOF(文件结束),因此任何从中获取输入的程序/dev/null
基本上都不会重定向任何内容作为其输入参数。