質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

6233閲覧

シェルスクリプトからララベルのコマンドを呼び出す

kiritan

総合スコア30

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/02/11 01:18

ララベルのコマンド(app/Console/Commands/test.php)を呼びだし引数によってはコマンドをループさせるシェルスクリプト(test.sh)を作ったのですが、終了コードをシェルスクリプトで正常に受け取ることができません。

test.phpでexit(1)で終了させても、test.shで[echo $?]終了コード表示させると
0が返ってきてしまいます。

そういうものですか。。。?フレームワークって難しいですね。
test.shもララベルで作り直すべきでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

artisanコマンドではreturnで終了コードを返せます

routes/console.php

Artisan::command('sh_test', function () { $this->info("test"); return 100; });

sh_test.sh

#!/bin/sh /usr/bin/php artisan sh_test echo $?

sh_test.sh実行後の出力結果

test 100

フレームワークでは後処理等がある場合に動作しないので、基本的にexit関数は使わないほうが良いです。
あまりシェルスクリプト特有の機能が無い場合は、artisanコマンド内に処理は入れてしまったほうが作りやすいかと思います。LaravelはSymfonyのコンソール機能を土台にして、コマンドへの引数や実行時のY/N確認入力等も備わっています。自作コマンドもartisanのlistコマンドで一覧として出てくるようになるので管理上も楽です。

Laravel 5.5 Artisanコンソール

投稿2018/02/13 06:41

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiritan

2018/02/13 12:14

とても丁寧にご回答いただきありがとうござます。 とてもわかりやすく納得できました。 artisanコマンドで作り直そうと思います。
guest

0

とても丁寧にご回答いただきありがとうござます。
とてもわかりやすく納得できました。
artisanコマンドで作り直そうと思います。

投稿2018/02/13 12:13

kiritan

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問