【发布时间】:2021-09-17 18:05:35
【问题描述】:
我很确定这将是重复的,因为我有时在其他地方看到过它,但我不记得在哪里,而且我(显然)也不知道它是如何被调用的。
在另一个 SO 帖子中,有这段代码(bash):
obj(){
. <(sed "s/obj/$1/g" obj.class)
}
. < 是做什么的?如果它有名字,它是什么?
【问题讨论】:
-
两个不同的东西。
<()是进程替换,其中命令的输出连接到一个文件,该文件通常是另一个命令的参数。句点是source的别名。它们都在 bash 手册中有更多解释。 -
它获取文件
obj.class,并用您传递给此函数的参数替换该文件中出现的每个obj。然后它sources将结果放入您当前的 shell。 -
另外请注意,如果您仍然停留在 bash 3 上,这将不起作用。见stackoverflow.com/q/32596123/9952196
标签: bash process-substitution dot-source