差异在bash和灰括号
我试图用比较目录列表一个diff命令,在bash工作正常:差异在bash和灰括号
diff <(cd alpha ; find . -type f) <(cd beta; find . -type f)
然而,灰分在(嵌入式设备没有其他外壳可用)我得到
-ash: syntax error: unexpected "("
是否有关于读取输入操作<
或括号(
)
有什么区别?
回答:
请勿将<(…)
中的尖括号与cat < file
等重定向中的尖括号混淆。在bash中,<(echo hi)
实际上是一个内容为“hi”的文件(至少为了阅读目的)。所以,你可以做
$ cat < <(echo hi) hi
你也可以做
$ echo <(:) /dev/fd/63
和外壳实际上扩大了进程替换的文件名。
Process substitution是bash功能。它不是POSIX specification的一部分,也不存在于灰烬之类的壳中。另一方面,另一方面,POSIX是Redirection。
回答:
<(command)
语法是Process Substitution并且不受ash
shell(和其他有限的/ etc。shells)的支持。
以上是 差异在bash和灰括号 的全部内容, 来源链接: utcz.com/qa/262109.html