如何在 bash-script 中使用 Laravel-(artisan)-command 的输出?
How to use output of Laravel-(artisan)-command in bash-script?
我正在尝试为我的 docker 容器之一编写一个小的启动脚本。问题是 bash-脚本必须等到 artisan-command 回显“1”。
artisan-commands 句柄函数如下所示:
$condition = something-to-check;
if($condition){ echo 1; } else { echo 0; }
我的想法是这样的:
#!/bin/bash
while php artisan myapp:mycommand == "0"
do
sleep 1m
done
do-something-else
我怎样才能做到这一点?
编辑:
对于通过 Google 来到这里的任何人 - James Taylor 的回答为我指明了正确的方向,这就是为什么我接受它并在问题中编辑我的解决方案。
方法是像这样编辑句柄函数:
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$mycondition = true; //or whatever
try{
if($mycondition == false){
echo "Some fancy status message based on the condition is false \n";
exit(1);
} else {
echo "Some fancy status message based on the condition is true \n";
exit (0);
}
} catch (\Exception){
echo "Some fancy status message based on the condition with an exception\n";
exit(1);
}
}
并像这样设置 bash-脚本:
#!/bin/bash
until php /path/to/artisan myapp:mycommand
do
echo "Condition is false!"
sleep 1m #or whatever you wanna do
done
echo "Condition is true!"
do-something
将您的 app:mycommand 更新为 return 退出代码而不是 echo。
exit(1);
引用 PHP 退出函数:https://www.php.net/manual/en/function.exit.php
我正在尝试为我的 docker 容器之一编写一个小的启动脚本。问题是 bash-脚本必须等到 artisan-command 回显“1”。 artisan-commands 句柄函数如下所示:
$condition = something-to-check;
if($condition){ echo 1; } else { echo 0; }
我的想法是这样的:
#!/bin/bash
while php artisan myapp:mycommand == "0"
do
sleep 1m
done
do-something-else
我怎样才能做到这一点?
编辑:
对于通过 Google 来到这里的任何人 - James Taylor 的回答为我指明了正确的方向,这就是为什么我接受它并在问题中编辑我的解决方案。 方法是像这样编辑句柄函数:
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$mycondition = true; //or whatever
try{
if($mycondition == false){
echo "Some fancy status message based on the condition is false \n";
exit(1);
} else {
echo "Some fancy status message based on the condition is true \n";
exit (0);
}
} catch (\Exception){
echo "Some fancy status message based on the condition with an exception\n";
exit(1);
}
}
并像这样设置 bash-脚本:
#!/bin/bash
until php /path/to/artisan myapp:mycommand
do
echo "Condition is false!"
sleep 1m #or whatever you wanna do
done
echo "Condition is true!"
do-something
将您的 app:mycommand 更新为 return 退出代码而不是 echo。
exit(1);
引用 PHP 退出函数:https://www.php.net/manual/en/function.exit.php