重定向运算符是什么"<"在shell脚本中做什么?

时间:2018-01-14 09:51:31

标签: bash shell zsh

我遇到了以下shell命令:

$prog.sh < file_name.json

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

$prog.sh < file_name.json

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

  

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

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