1

毎日午前1時1分にcronで実行されるbashスクリプトがあります。bashスクリプトは次のとおりです。

array_of_clients=(2 187 317 927 1863 2993 3077 3440 3444 3457 3459 3469 3484 3487 3494 3497 3522 3544 3551 3553)

for i in "${array_of_clients[@]}"
do
    echo "\nRunning Client - $i"
    php -f "/mnt/www/bin/scheduled/import_client.php" $i
    echo "\nFinished Client - $i"
done

この問題は、$iがphpスクリプトの引数として渡されているかどうかわからないことです。私は何か間違ったことをしていますか?$iを""内に入れると、ファイル名が/mnt/www/bin/scheduled/import_client.php 2になるため、ファイルが見つからないというメッセージが表示されます。

誰か助けてもらえますか?

4

1 に答える 1

1

事前定義されたグローバル変数で、PHP スクリプトのコマンド ライン引数にアクセスできます$argv。この場合、あなた$iは として見つかります$argv[1]

このスクリプトを試してください:

<?php
global $argv;
var_dump($argv);
?>

php -f test.php A B C defgh利回りでそれを実行する:

array(5) {
  [0]=>
  string(8) "test.php"
  [1]=>
  string(1) "A"
  [2]=>
  string(1) "B"
  [3]=>
  string(1) "C"
  [4]=>
  string(5) "defgh"
}
于 2012-11-14T09:08:08.463 に答える