シェルスクリプトは、すべてのサブディレクトリに対してシェルスクリプトを実行します。

シェルスクリプトは、すべてのサブディレクトリに対してシェルスクリプトを実行します。

日常的な作業を簡素化するためにスクリプトを作成しています。毎日会社サーバー内で何かを検索する必要があります。大丈夫です。しかし、今では各オブジェクトをサブディレクトリに分割しました。私は、既存のシェルスクリプトが特定のディレクトリ内のすべてのサブディレクトリで繰り返し実行されるソリューションを探しています。どうすればいいですか?私は初めてLinuxに触れ、まだ学んでいます。

これは私のスクリプトです。

#!/bin/bash
MainDir=/path/to/dir/containing/subdirs
# cd into dir
cd $MainDir

for dir in $(ls); do

#fetch start time of uut
grep -i "01_node_setup" $dir/his_file | tail -1 >> /home/xtee/sst-logs.out

#check if sysconfig.out exists
if [ -f $dir/sysconfig.out];
then
    grep -A 1 "Drive Model" $dir/sysconfig.out | tail -1 >> /home/xtee/sst-logs.out
else
    grep -m 1 "Pair0 DIMM0" $dir/node0/trans_file_prev/*setupsys* | tail -1 >> /home/xtee/sst-logs.out
fi

done

#cd back to where we started
cd $OLDPWD

良い人が私が台本を書くのを手伝ってくれました。ただし、binary file /some/subdirectory/grep出力の代わりにsst-logs.outファイルを表示することでうまく機能します。スクリプトにどのような問題がありますか?

ベストアンサー1

検索で次の情報を入手できます。

find /your/dir/with/subdirs -type d -exec sh -c 'cd "{}" ; /path/to/your/script.sh ;' \;

おすすめ記事