当前位置:  开发笔记 > 编程语言 > 正文

对Shell中的一些标准输入或Heredoc用法感到困惑

如何解决《对Shell中的一些标准输入或Heredoc用法感到困惑》经验,为你挑选了1个好方法。

作为形象。所有命令都是相似的。我知道如何使用它,但是我真的不知道细节。有人知道吗?非常感谢你。

# 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)具有与输出有关的类似物,使用>代替<



1> rici..:

一些非常有用的Bash手册中的一些阅读材料:

重定向()-使标准输入重定向到文件filename

这里的文档(<)-使标准输入从下一行(直到但不包括该行)重定向到脚本源WORD

字符串(<<<"string")-使标准输入重定向到该字符串string(就好像该字符串已写入临时文件,然后将标准输入重定向到该文件一样)

进程替换(<(command))-启动进程执行,command并在命令行上插入一个名称类似于文件名的名称,以便从该“文件”中读取将产生命令的输出

-Posix建议使用来指示源文件是标准输入,这是许多命令所共有的。如果未指定文件,许多命令将从标准输入中读取。有些像一样cat,实现了两种指示意图是从标准输入中读取的方式。

请注意,-<(command)都是文件名参数,同时<<<<"string"是重定向。因此,尽管它们从表面上看起来很相似,但在幕后却大不相同。他们的共同点是他们与输入有关 ; 其中一些(但不是here-docs / strings)具有与输出有关的类似物,使用>代替<

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有