2

ディレクトリをスキャンして*.phpという名前のファイルを探し、PHPプリプロセッサを使用して各ファイルを実行し、ファイルと同じ場所に、同じファイル名で、.phpではなく.html拡張子のみを使用して出力をキャプチャします。 。

これまでのところ:

find . -type f -name "*.php" | xargs -I {} php {} >> '{ dirname {}; basename {} .php; }'

このbashパズルにご協力いただきありがとうございます。

4

2 に答える 2

1

これが機能すると思います...

#!/bin/bash
FILES=/var/www/*.php
for f in $FILES
do
  echo "Running script $f..."
  php $f > $f.out
done

おそらく、php が存在する bin へのフル パスが必要です。

編集:

php $f > ${f%.php}.html
于 2012-09-20T21:41:28.450 に答える
0

-execで直接使用したほうがよいでしょうfind。xargs は、ファイルごとに何かを探しているときに、一括パラメーターを渡す必要がある場合に使用します。例えば

find ... -exec "php {} > $(basename {}).html;"

または似たようなもの。私が bash を使わなければならなくなってからしばらく経ちましたが、それはほぼ確実にうまくいかないでしょう。

于 2012-09-20T21:42:31.910 に答える