Bashスクリプト各ディレクトリのWebルートにhtアクセスファイルを配置します。

Bashスクリプト各ディレクトリのWebルートにhtアクセスファイルを配置します。

/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)、再度は変更されません。

おすすめ記事