CakePHP2でシェルを実行したときの戻り値を「exit(1)」で指定して、それを bashで取得したいのですが、正常終了の「0」が帰ってきます。
戻り値を「1」として取得する方法をご存知の方はありませんでしょうか?
CakePHP2 の環境で、下記のシェルを作成しました。
/app/Console/Command/SampleShell.php
php
1<?php 2class SampleShell extends Shell { 3 public function main() { 4 echo "abcde"; 5 exit(1); 6 } 7} 8
これを下記のコマンドで実行しました。
bash
1/home/Sample/app/Console/cake Sample; echo $? 2
その戻り値は下記の通りとなります。
abcde0
「abdce」は「echo」の結果で、そのあとの「0」が戻り値かと思っていますが、これを「0」ではない指定した値(1)にすることはできないものでしょうか?
CakePHP3では「exit(1)」で指定した値を「$?」で戻り値として取得できました。
同じことを CakePHP2でやってみたのですが、指定している「1」が出力されてこないため、CakePHP2では何かしらの設定が必要なのかと考えています。
ちなみに、下記なども試して見ましたが、戻り値は「0」のままでした。
php
1$this->out(); 2$this->err(); 3$this->error(); 4
今回はサンプルのため、先のコマンドを実行していますが、実際は bashのスクリプトを作成し、戻り値がエラー(1)の場合は、エラーの処理を実行するようなスクリプトを組んで実行しています。
そのため「$?」以外の方法でエラーが発生したという情報の受け渡しが出来れば、機能としては満たせはします。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/10 05:46
2021/05/10 06:02
2021/05/11 07:53