/homeのすべてのサブディレクトリをドリルダウンし、その中にあるpublic_htmlフォルダを探すスクリプトを作成しようとしています。
次に、.htaccessがすでに存在することを確認し、ファイルに書き込むと、.htaccessファイルをpublic_htmlに入れます。
今私に
#!/bin/bash
FILE=.htaccess
for d in */; do
cd "${D}"
cd public_hmtl
if [-e $FILE ]; then
echo "Htaccess exists for "${D}" >> /test/error.txt
else
cp /htaccess ./
fi
これは実行されていないため、明らかに正しくありません。私はbashの経験があまりなく、それを使用しなければならなかったかなり時間がかかりました。
ベストアンサー1
#!/bin/sh
htaccess='/path/to/.htaccess'
for dir in /home/*/public_html/; do
if [ -e "$dir/.htaccess" ]; then
print 'htaccess exists in "%s"\n' >&2
else
cp "$htaccess" "$dir"
fi
done
public_html
その後、各ディレクトリ内のすべてのディレクトリを繰り返して、ファイルがすでに存在することを/home
確認します。.htaccess
存在する場合は診断メッセージを生成し、そうでない場合は.htaccess
どこかで標準をコピーします。
あなたはこれを実行します
$ ./script 2>error.log
コードの問題は、cd
ディレクトリをディレクトリの1つに変更しますがpublic_html
(内で実行している場合/home
)、再度は変更されません。