gpt4 book ai didi

c - 如何在另一个 shell 的上下文中访问一个上下文的 shell 变量

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

我在 shell 上执行了以下命令

sw0:root> pwd
/root
sw0:root> echo $(history 1)
2 echo $(history 1)
sw0:root>

现在我在一个c文件中调用system系统调用,如下所示

system (" echo \"___history1 = $(history 1)____\"");

输出:

___history1 = ____

我尝试的是使用 system 系统调用从 C 中读取 shell 的最后一个历史命令。

请澄清以下疑问

  1. 为什么我无法从 c 文件中读取在 shell 中执行的最后一个历史命令?

  2. 是不是因为我调用system系统调用的时候,fork了一个新的shell?

  3. 如果是这样,我该如何实现?从其他 shell 读取 1 个 shell 的命令输出?

最佳答案

当您运行您的程序时,它会在子 shell 中运行,并且不会继承调用 shell 的历史记录。

您可以将此与运行 bash -c history 进行比较,您不会得到任何结果。

关于c - 如何在另一个 shell 的上下文中访问一个上下文的 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848146/

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