特定のディレクトリに対してDB引数を必要とするPHPスクリプトを実行する動的cronジョブを作成しようとしています。2つのforループを結合するBash
出力は次のようになります。私は、次しまっ
/usr/bin/php /var/www/html/test.php db_test
:
#!/bin/bash
DIR="/var/www/html/*"
PHP="/usr/bin/php"
ACCOUNTS=$(ls -d $DIR)
DBPREFIX="db_"
DB=$(find /var/www/html/ -mindepth 1 -maxdepth 1 -type d | awk -F'/' '{print $5}')
for CUSTOMER in $ACCOUNTS
do
echo $PHP $CUSTOMER $DBPREFIX$DB
done
これは、次の出力:
/usr/bin/php /var/www/html/test.php db_test test2 test3 test4
問題をDBPREFIXとDB VARSが必要だということですまた、私はすべての単一のデータベースの完全なコマンドを取得するループをトラフに行く。
どうすればできますか?
プライベート変数に大文字を使用しないでください。大文字の変数名は、システムで使用するために予約されています。 – tripleee
そして、PHPへのパスをハードコーディングするだけで愚かです。必要ならば 'PATH'を修正しますが、必要に応じてユーザがシステムの場所を上書きできるようにしてください。 – tripleee
Annnnd [スクリプトで' ls'を使わないでください](http:// mywiki.wooledge.org/ParsingLs)。 – tripleee