gpt4 book ai didi

linux - bash 和 ash 括号的区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:02 30 4
gpt4 key购买 nike

我尝试使用 diff 命令来比较在 bash 中运行良好的目录列表:

diff  <(cd alpha ; find . -type f) <(cd beta; find . -type f)

但是,在 ash(没有其他 shell 可用的嵌入式设备)上,我得到了

-ash: syntax error: unexpected "("

读取输入运算符<有什么区别吗?或括号 ( )

最佳答案

不要混淆 <( … ) 中的尖括号重定向中的那个 cat < file .在 bash 中,<( echo hi )实际上是一个内容为“hi”的文件(至少为了阅读目的)。所以你可以这样做

$ cat < <( echo hi )
hi

你也可以这样做

$ echo <( : )
/dev/fd/63

并且 shell 实际上将该进程替换扩展为文件名。

Process substitution是一个 bash 功能。它不是 POSIX specification 的一部分并且不存在于 Ember 之类的 shell 中。 Redirection ,另一方面,是 POSIX。

关于linux - bash 和 ash 括号的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30781969/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com