我遇到了下面的shell命令:
$prog.sh < file_name.json
我知道它从文件读取,但prog.sh
如何以及在何处加载文件?
每个程序在启动时都有三个打开的文件句柄,其中一个是标准输入。通常,文件句柄是从父进程继承的。 <
运算符告诉shell,不是将其标准输入传递给prog.sh
,而是打开file_name.json
,并将该文件句柄赋予prog.sh
作为其标准输入。
$prog.sh < file_name.json
正如你猜的那样。 <
用于重定向文件的输入,以便您的脚本将从文件中读取(临时)stdin
(fd0)。
它从文件中读取,但prog.sh将如何以及在何处加载文件
这取决于你打算如何去做。脚本中需要来自stdin
的输入的任何命令现在都将从文件中读取。文本文件中的new line
字符(通常)代表stdin
中的↵。