Unix:特定の名前のディレクトリからスクリプトを実行したいと思います。

Unix:特定の名前のディレクトリからスクリプトを実行したいと思います。

私はbashでスクリプトを書いています。

Fooディレクトリにある場合は、fooの後に最大3つの数字を含むfooという名前のfooサブディレクトリでのみこのスクリプトを実行したいと思います。

例:foo1、foo23、foo345など

テストは私のスクリプトの名前です。

これが私が今まで持っているものです。このスクリプトで検索するディレクトリを正確に指定する方法を覚えていません。

その他の重要な点:私はSSHクライアントで実行しています。

for i in foo*
    do                 
        if [ -d $i ]   
            then
               sh ./test 
               echo "Test is working."
        fi
    done

答え1

これ正しいこれを行う方法は、スクリプトにディレクトリをパラメータとして使用させることです。

for directory in foo*/
do
    ./test.sh "$directory"
done

ループの末尾のスラッシュは、forディレクトリとディレクトリへのシンボリックリンクを繰り返すことを保証します。ディレクトリをスクリプトに渡すと、スクリプトとターゲットディレクトリを移動できます。どこかに操作するために特別な作業を行う必要はありません。

より具体的には、ディレクトリを選択するには、次を読む必要があります。、特にextglob

関連情報