高レベルファイルからコマンドパラメータをロードする

高レベルファイルからコマンドパラメータをロードする

まだ満足して解決できない興味深い問題に直面しました。

2つのパラメータを持つNotesコマンドを検討してください。

note $project  $note

これは単に最初のパラメータに基づいてプロジェクトの下の$ noteの内容を保持します。

今、いくつかのデータを入力する2つのプロジェクトがあります。

note "projectA" "asdfasdf"
note "projectB" "weradfvsaf"

プロジェクトがほとんどない場合、これはうまく機能します。その後、より多くのプロジェクトがあり、アイデアがありました。現在のパスを使用してプロジェクト名を決定します。

+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/...

そのため、ディレクトリパスからプロジェクト名を解析する上記の関数のラッパーを作成しました。

これは、複数のパスにわたって複数のプロジェクトを開始するまではうまく機能します。

+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/temp/projectA
+~/test/projectA

今私の質問は:どのように怠惰に過ごすことができますか?最も簡単な方法は、そのフォルダとそのフォルダを含むすべてのサブフォルダに含まれるプロジェクトの名前のみを含むproject.rcというファイルを作成することです。ラッパーは、単に現在のディレクトリでファイルを探し、ファイルが見つかるまでディレクトリツリーを探索し続けます。その後、ファイルが読み取られ、それに応じて$ projectパラメータが設定されます。

私はシェルスクリプトに慣れていません。誰もがこの問題に対する解決策を思いつくことができますか?

答え1

これによりトリックが実行されます。

 PPATH=$(while [[ "$PWD" != / && ! -f project.rc ]]; do cd ..; done; echo "$PWD")

これにより、変数にはPPATHコマンドを呼び出したプロジェクトへのパスが含まれます。その後、それを$PPATH/project.rc.(/ファイルが親ディレクトリにない場合は、この変数が配置されます。)

関連情報