This question already has answers here:
What is </dev/null in bash?

(4个答案)


4年前关闭。





'> /dev/null'是非常常见的语法,这并不是一个新概念。但是,我进入了该脚本编写阶段,无法弄清'< /dev/null'背后的逻辑,尤其是对于FFMpeg。

我写了几十个处理FFMpeg的脚本,发现为了使脚本本身能够成功地调用和执行FFMpeg,在ffmpeg命令行的末尾添加了“ < /dev/null”。例如:

ffmpeg -i $INPUT -c:v copy -c:a copy output.mp4 < /dev/null


但是,如果我没有在命令末尾添加该sytnax,则脚本无法将执行“推”到FFMpeg。当将所有null,stdout,stdin的>“写”为read时,我理解了整个概念,但是... < /dev/null是否为null?挠头

那么,到底是什么?

最佳答案

对于许多系统,可以查阅特殊设备的手册页。例如,Linux null(4)文档:


从/ dev / null读取总是返回文件结尾


FreeBSD null(4)表示不同:


空设备以任何普通(愿意)文件的形式接受和读取数据,但是将其丢弃。空设备的长度始终为零。


这还不太清楚。 Solaris null(7)


从空的特殊文件读取总是返回0个字节。


当脚本添加一些想要从其标准输入读取的程序,但脚本中不会提供任何数据时,您会在脚本中看到从/dev/null的重定向。例如,如果未重定向,则程序可能会等待键盘输入。

09-05 01:51
查看更多