重定向运算符是什么“

问题描述 投票:0回答:2

我遇到了下面的shell命令:

$prog.sh < file_name.json

我知道它从文件读取,但prog.sh如何以及在何处加载文件?

bash shell zsh
2个回答
2
投票

每个程序在启动时都有三个打开的​​文件句柄,其中一个是标准输入。通常,文件句柄是从父进程继承的。 <运算符告诉shell,不是将其标准输入传递给prog.sh,而是打开file_name.json,并将该文件句柄赋予prog.sh作为其标准输入。


1
投票
$prog.sh < file_name.json

正如你猜的那样。 <用于重定向文件的输入,以便您的脚本将从文件中读取(临时)stdin(fd0)。

它从文件中读取,但prog.sh将如何以及在何处加载文件

这取决于你打算如何去做。脚本中需要来自stdin的输入的任何命令现在都将从文件中读取。文本文件中的new line字符(通常)代表stdin中的↵。

© www.soinside.com 2019 - 2024. All rights reserved.