bash変数は実行間で維持できますか?

bash変数は実行間で維持できますか?

losetup -fアイドルループデバイスを照会する初期化スクリプトを生成しようとしています。 initスクリプトは、いくつかの項目を設定するために自由ループデバイスを照会start()するファイルと 。losetup -fstop()

私が理解できない問題は、出力をlosetup -f永続的な物質に保存してユーザーの驚き(環境変数の上書きなど)を防ぎ、stop()この特定の初期化スクリプトが呼び出されるたびに割り当てられたループデバイスにアクセスできるようにする方法です。に 。

ループデバイスを常に割り当てる必要があるのは、ループデバイスを処理する2〜3個の初期化スクリプト(初期化スクリプトごとに少なくとも2つのループデバイス)があり、各初期化スクリプトが独自に追跡する必要があるためです。

複数の出力をlosetup -fファイルに割り当てて分離/使用する必要がある場合は、ループから再読み込みできるようにする必要がありますか?それでは、そのようなデータの標準ディレクトリは何ですか?

ベストアンサー1

コメントに基づいてソリューションを作成しました。

start() {
    loop=$(losetup -f)
    echo "$loop" > /var/run/init-script-name.loop
    #continue to use $loop as the reference to your loop device
}

stop() {
    loop=$(cat /var/run/init-script-name.loop)
    rm /var/run/init-script-name.loop
    #continue to use $loop as the reference to this scripts loop device
}

これにより、各初期化スクリプトは、後で割り当てられたデバイスをインポートする必要がある場合に参照できるファイルにループデバイスを保存できます。複数のデバイスが必要な場合は、すべてのデバイスをファイル(1行に1つずつ)に表示し、それを使用してwhile read -r /path/to/file繰り返し可能な配列などの構造を作成できます。

おすすめ記事