Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5 - How to create an Artisan command to execute bash script

I want to get an artisan command to run a bash script when executed.

So I've created an artisan command using the following

php artisan make:command backupList --command=backup:list

And here is backupList.php

<?php

namespace App\Console\Commands;

require_once __DIR__ . '/vendor/autoload.php'; 

use Illuminate\Console\Command;


class backupDB extends Command
{

protected $signature = 'backup:list {name}';

protected $description = 'Database backup tool';



public function __construct()
{
    parent::__construct();
}



public function handle()
{
    $this->exec('ls -la');
}
}

In handle() exec and shell_exec don't seem to work, are there any alternatives to get the artisan command to run bash in shell?

like image 212
jukerok Avatar asked Sep 14 '17 00:09

jukerok


1 Answers

Rather than use:

$this->exec('ls -la');

You can simply do the following:

// execute command
exec("ls -la", $output);

// print output from command
$this->comment( implode( PHP_EOL, $output ) );
like image 86
Niraj Shah Avatar answered Oct 04 '22 22:10

Niraj Shah