你能在Linux shell中将树形结构加载到内存中吗?

3

我想使用类似于这样的Linux shell脚本创建一个应用程序 - 但是它可以完成吗?

此应用程序将创建包含数据的树。该树应在内存中加载。该树(加载到内存中)可从任何其他外部Linux脚本中读取。

  • 是否可以使用Linux shell实现?
  • 如果可以,如何实现?
  • 是否有简单的示例?

能否解释一下为什么我的问题不清楚? - MOHAMED
问题中展示了大量的误解。每个进程通常都有自己的内存;没有简单的方法将“树”加载到一个进程的内存中,并使其对所有其他进程可用。您可以设计一组相关程序,这些程序以某种方式知道包含树的共享内存段,但仅限于此。您在寻找的东西在shell中根本不可用。这可能是为什么其他人会对您的问题进行投票否决的原因。 - Jonathan Leffler
1
这可能是对我的问题的回答,因为我已经在我的问题中说过“是否可以使用Linux shell来完成它?” 这样的问题可能会吸引新手shell程序员,他们有我所遇到的相同问题。 - MOHAMED
一个不错的问题,即使是在原始形式下也可以回答——请看下面我的回答。 - full.stack.ex
3个回答

2

这个问题中存在大量误解。

每个进程通常都有自己的内存,没有简单的方法将“树”加载到一个进程的内存中并使其对所有其他进程可用。您可以设计一套相关程序,它们了解包含树的共享内存段(不知何故存在问题),但仅此而已。它们将是特殊程序,而不是通用的shell脚本。这并不符合您对“任何其他外部Linux脚本”的要求。

您正在寻找的在Linux shell基础设施中根本不存在。这回答了您的第一个问题;鉴于第一个问题的答案,其他两个问题都不重要。


1

我认为没有办法同时满足以下所有要求:

  • 将其构建为shell脚本
  • 在内存中运行
  • 可从终端/外部脚本使用

你必须放弃至少一个要求:

  1. 放弃shell脚本要求- 用C语言构建它以作为Linux进程运行。我只能理解到这一点,因为这是非常困难的。

  2. 放弃内存要求- 你可以序列化树并将数据保存在临时文件中。只要文件很小且性能瓶颈不在于访问树,就可以正常工作。好消息是你可以从终端/外部脚本中使用数据。

  3. 放弃外部脚本的可用性要求- 你可以在当前shell会话中添加许多(即:一堆)表示树的变量来构建脚本并运行它。

这些替代方案都不是很好,但如果你必须选择一个,第二个可能是最不麻烦的。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接