Bash
在 heredocument 重定向/附加行中使用正則表達式,以定位特定的“集”目錄
我需要一種方法來定位所有以或其他TLD
public_html
結尾的子目錄,或者我可能會在heredocument中列出。.com``.biz``.co.il
這是我的 hereoducmnet 內的
pushd-popd
-if-fi
嵌套在for
循環內的語句:for dir in "$HOME"/public_html/*/; do if pushd "$dir"; then cat <<-"EOF" >> "$HOME"/public_html/ALL_DOT_COM|ALL_DOT_BIZ/.htaccess Apache_directive_set_1 Apache_directive_set_2 popd EOF fi done 2>myErrors.txt
有沒有辦法結合正則表達式來實現這一點,直接在 heredocument 重定向/附加行(在哪裡
ALL_DOT_COM|ALL_DOT_BIZ
)?
我假設您想追加到
.htaccess
所有目錄中$HOME/public_html/foo.com/
,例如$HOME/public_html/bar.biz/
等。您的
for
循環已經管理處理所有目錄,那麼問題就是調整 glob 以匹配所需的結尾:for dir in "$HOME"/public_html/*.{com,biz,co.il}/; do cat <<-"EOF" >> "$dir"/.htaccess Apache directives... ... EOF done 2>myErrors.txt
似乎不需要
cd
,因為dir
已經包含目錄的完整路徑。以上內容當然只匹配列出的頂級域。(我不確定這是否是您想要的,因為您寫了“或其他 TLD”。)如果您不在乎目錄名稱上有哪個 TLD,只需使用
.../public_html/*/
, 或.../public_html/*.*/
,儘管這仍然假設沒有其他內容在那裡。(但是,列出所有TLD 有點尷尬,他們可能會想出更多……)