私は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
。