gpt4 book ai didi

带重定向的 shell 内置

转载 作者:行者123 更新时间:2023-12-04 18:23:21 26 4
gpt4 key购买 nike

我们正在开发一个 shell(学校项目)。我们不理解一种行为。为什么内置函数在重定向时不起作用?

喜欢

cd - | command

不改变目录。

export NAME=VALUE | command

不创建变量。

谢谢。

最佳答案

管道的链接在 fork 子 shell 中运行。

在 bash 中,您可以使用 $BASHPID 打印当前进程的 PID,例如:

self(){ echo $BASHPID; } ; self ; self >&2 | self; self

应该给你这样的东西:

12849
12851
12852
12849

中间两个 PID 不同于第一个和最后一个(母 shell)(在某些 shell 中,第一个或最后一个链接在母 shell 中运行,但不在 bash 中运行)。

在子 shell 中更改当前目录或导出值不会以任何方式影响父 shell。

关于带重定向的 shell 内置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293467/

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