3

我想用这样的 Linux shell 脚本创建一个应用程序——但能做到吗?

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

  • 是否可以使用 Linux shell 来实现?
  • 如果是,你该怎么做?
  • 有什么简单的例子吗?
4

3 回答 3

2

问题中存在大量误解。

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

您正在寻找的东西在 Linux shell 基础架构中根本不可用。这回答了你的第一个问题;其他两个没有实际意义,因为第一个的答案。

于 2012-10-22T17:23:14.477 回答
1

我认为没有办法做到这一点,就好像你想保留以下所有要求:

  • 将其构建为 shell 脚本
  • 在记忆中
  • 可跨终端/从外部脚本使用

您将不得不放弃至少一项要求:

  1. 放弃 shell 脚本 req - 在 C 中构建它以作为 Linux 进程运行。我只明白这一点,说这不是微不足道的

  2. 放弃内存请求 - 您可以序列化树并将数据保存在临时文件中。只要文件很小并且性能瓶颈不在访问树周围,这就会起作用。好消息是您可以跨终端/来自外部脚本使用数据

  3. 放弃外部脚本的可用性 req - 从技术上讲,您可以构建一个脚本并通过采购它来运行它,以将表示树的许多(阅读:一堆)变量添加到您当前的 shell 会话中。

这些替代方案都不是很好,但如果你不得不选择一个,2 号可能是问题最少的。

于 2012-10-22T17:23:54.927 回答
1

这里有一个相关的讨论。他们使用共享内存设备/dev/shm,而且表面上它适用于多个用户。至少,值得一试:

http://www.linuxquestions.org/questions/linux-newbie-8/bash-is-it-possible-to-write-to-memory-rather-than-a-file-671891/

编辑:刚刚在 Ubuntu 上与两个用户一起尝试过 - 看起来像一个普通目录,并且真正适用于正确的 chmod。

也可以看看:

http://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html

于 2012-10-22T17:56:31.353 回答