0

投稿するのは初めてです。過去にここからコード例を使用しました。助けに感謝します。

私は現在、数十の機能を備えた大規模な Bash スクリプトを持っていますが、それは成長しており、管理が難しくなっています。各関数は実際には完全に個別のモジュールであり、開発を容易にするため、および各モジュールを統合する必要なくコミュニティが提供するモジュールを簡単に許可できるようにするために、メイン スクリプトが自動的に実行する個別のモジュール ファイルを持つ機能を追加したいと考えています。見て、追加してください。

現在私は持っています:(超簡略化)

script.sh

#! /bin/bash

function one {
 stuff
}

function two {
 different stuff
}

one
two
exit

しかし、ディレクトリ (「modules/」など) を自動的にチェックするスクリプトを用意し、サフィックス .module を持つファイル (lights.module など) をメニューにロードすることをお勧めします (私は優れた機能的なホイップテール メニュー システムを持っています)。すでに)。

Google や stackoverflow からたくさんのものを試しましたが、壁にぶつかったようです。

モジュール名のリストを含むファイルを作成できます。そのため、モジュールを自由にドロップでき、リストに表示されます。

for entry in /home/tony/scripts/test/modules/*
do
 echo "$entry" >> modules.list # Append the name of present modules to the list of modules
done

しかし、どうすればスクリプトにこれらのモジュール名を知らせて、何かを行うことができるでしょうか (つまり、それらをウィップテール メニューに入れ、選択された場合は呼び出します)。

4

2 に答える 2

1

フォルダを作成して実行することを検討しましたか:

for module in somefolder/*.module; do
    source $module
done

必要に応じて、モジュールを目的の実行順序でアルファベット順に並べ替えることができます

于 2013-02-06T20:49:50.933 に答える
0

KSH には、その種のオートロード機能があります。これは、Bash 用のポートが利用可能であることを示しているようです。

于 2013-02-06T20:45:10.400 に答える