作为形象。所有命令都是相似的。我知道如何使用它,但是我真的不知道细节。有人知道吗?非常感谢你。
# does `cat` read fd and print? $ cat file # does `cat` read from stdin and print? $ cat < file $ cat - < file # with heredoc or herestring, what methods `cat` command use to read from heredoc?stdin? $ cat << EOF heredoc> test heredoc> EOF test $ cat <<< "test" $ cat - << EOF heredoc> test heredoc> EOF test $ cat - <<< "test" # and I dont why these commands works? $ cat <(echo "test") $ cat - <<(echo "test") # why this command doesn't work? $ cat - <(echo "test")
rici.. 7
一些非常有用的Bash手册中的一些阅读材料:
重定向(filename
这里的文档(<
WORD
字符串(<<<"string"
)-使标准输入重定向到该字符串string
(就好像该字符串已写入临时文件,然后将标准输入重定向到该文件一样)
进程替换(<(command)
)-启动进程执行,command
并在命令行上插入一个名称类似于文件名的名称,以便从该“文件”中读取将产生命令的输出
-
Posix建议使用来指示源文件是标准输入,这是许多命令所共有的。如果未指定文件,许多命令将从标准输入中读取。有些像一样cat
,实现了两种指示意图是从标准输入中读取的方式。
请注意,-
和<(command)
都是文件名参数,同时<
<<<"string"
是重定向。因此,尽管它们从表面上看起来很相似,但在幕后却大不相同。他们的共同点是他们与输入有关 ; 其中一些(但不是here-docs / strings)具有与输出有关的类似物,使用>
代替<
。
一些非常有用的Bash手册中的一些阅读材料:
重定向(filename
这里的文档(<
WORD
字符串(<<<"string"
)-使标准输入重定向到该字符串string
(就好像该字符串已写入临时文件,然后将标准输入重定向到该文件一样)
进程替换(<(command)
)-启动进程执行,command
并在命令行上插入一个名称类似于文件名的名称,以便从该“文件”中读取将产生命令的输出
-
Posix建议使用来指示源文件是标准输入,这是许多命令所共有的。如果未指定文件,许多命令将从标准输入中读取。有些像一样cat
,实现了两种指示意图是从标准输入中读取的方式。
请注意,-
和<(command)
都是文件名参数,同时<
<<<"string"
是重定向。因此,尽管它们从表面上看起来很相似,但在幕后却大不相同。他们的共同点是他们与输入有关 ; 其中一些(但不是here-docs / strings)具有与输出有关的类似物,使用>
代替<
。