This question already has answers here:
What is </dev/null in bash?
(4个答案)
4年前关闭。
我写了几十个处理FFMpeg的脚本,发现为了使脚本本身能够成功地调用和执行FFMpeg,在ffmpeg命令行的末尾添加了“
但是,如果我没有在命令末尾添加该sytnax,则脚本无法将执行“推”到FFMpeg。当将所有null,stdout,stdin的
那么,到底是什么?
(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
的重定向。例如,如果未重定向,则程序可能会等待键盘输入。