Bash
將 ht 訪問文件放在每個目錄 bash 腳本的 webroot 中
我正在嘗試編寫一個腳本,該腳本將進入 /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 沒有太多經驗,而且我已經有一段時間需要使用它了。
#!/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
. 它將目錄更改為其中一個public_html
目錄(如果從內部執行/home
),但永遠不會再回來。