小编Elm*_*der的帖子

Bash 读取命令和标准输入重定向

据我了解 bash 文档 和 < 重定向标准输入。所以,cmd | foofoo < <(cmd)应该或多或少是等价的。但是,对于 bash 内部读取命令,情况似乎并非如此。例如,如果我输入

a=""; b=""; read a b < <(echo a b); echo $a $b
Run Code Online (Sandbox Code Playgroud)

它打印出来a b,而

a=""; b=""; echo a b | read a b; echo $a $b
Run Code Online (Sandbox Code Playgroud)

什么都不打印。另一方面,如果我输入

a=""; b=""; cat < <(echo a b) >foo1

a=""; b=""; echo a b | cat > foo2
Run Code Online (Sandbox Code Playgroud)

文件 foo1 和 foo2 完全相同。所以我的问题是:当涉及(或一般)读取命令时,这两种形式有什么区别?他们应该看到完全相同的重定向输入。虽然< <(...)表单有效,但我发现它非常难以理解,并且更喜欢使用管道表单。

bash io-redirection

8
推荐指数
1
解决办法
9288
查看次数

标签 统计

bash ×1

io-redirection ×1