3

このような Linux シェル スクリプトを使用してアプリケーションを作成したいのですが、それは可能ですか?

このアプリケーションは、データを含むツリーを作成します。ツリーをメモリにロードする必要があります。(メモリーにロードされた) ツリーは、他の外部 Linux スクリプトから読み取ることができます。

  • Linuxシェルでそれを行うことは可能ですか?
  • はいの場合、どうすればできますか?
  • そして、そのための簡単な例はありますか?
4

3 に答える 3

2

質問には多くの誤解が見られます。

通常、各プロセスには独自のメモリがあります。「ツリー」を 1 つのプロセスのメモリにロードして、他のすべてのプロセスで利用できるようにする簡単な方法はありません。ツリーを含む共有メモリ セグメント (どういうわけか - そこに問題があります) を認識している関連プログラムのシステムを考案するかもしれませんが、それだけです。それらは、一般的なシェル スクリプトではなく、特別なプログラムになります。これは、「その他の外部 Linux スクリプト」の要件を満たしていません。

あなたが探しているものは、Linux シェル インフラストラクチャでは利用できません。これで最初の質問に答えます。最初の答えを考えると、他の2つは意味がありません。

于 2012-10-22T17:23:14.477 に答える
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で2人のユーザーで試してみました-通常のディレクトリのように見え、正しいchmodで本当に機能します。

以下も参照してください。

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

于 2012-10-22T17:56:31.353 に答える
1

次のすべての要件を維持したい場合のように、これを行う方法はないと思います。

  • これをシェルスクリプトとしてビルドする
  • インメモリ
  • 端末間/外部スクリプトから使用可能

少なくとも 1 つの要件を放棄する必要があります。

  1. シェル スクリプト req をあきらめる - これを C でビルドして、Linux プロセスとして実行します。私はこれが自明ではないだろうと言うところまでしか理解していません

  2. メモリ内の要件を放棄する - ツリーをシリアル化し、データを一時ファイルに保持できます。これは、ファイルが小さく、パフォーマンスのボトルネックがツリーへのアクセスに関係していない限り機能します。良いニュースは、端末間/外部スクリプトからデータを使用できることです

  3. 外部スクリプトからの使いやすさをあきらめる必要があります - 技術的には、スクリプトを作成し、それをソースとして実行して、ツリーを表す多くの (読み: 混乱した) 変数を現在のシェル セッションに追加することができます。

これらの代替案はどれも優れたものではありませんが、1 つを使用する必要がある場合、2 番がおそらく最も問題が少ないでしょう。

于 2012-10-22T17:23:54.927 に答える