Passar argumentos de script bash entre aspas duplas para php cli script

2

Eu estou tentando passar argumentos para um script bash e depois para um script php, eu olhei literalmente para mais de 30 links, e tentei mais de uma dúzia de exemplos, e eu por alguma razão não consegui fazer o seguinte trabalho, estou seriamente frustrado, qualquer ajuda é muito apreciada.

Para o bem desta questão, digamos que eu tenha o seguinte script bash (test.sh)

#!/usr/bin/env bash

/usr/bin/php test.php $@

e eu tenho o seguinte script PHP (test.php)

<?php

print_r($argv);

e estou tentando executar o script bash com os seguintes argumentos

./test.sh hello world "how are you"

os resultados acima são os seguintes

Array
(
    [0] => test.php
    [1] => hello
    [2] => world
    [3] => how
    [4] => are
    [5] => you
)

e eu estou procurando os resultados para ser

Array
(
    [0] => test.php
    [1] => hello
    [2] => world
    [3] => how are you
)

Todas as ideias são muito apreciadas ... Estou batendo com a cabeça contra a mesa ...

    
por Jeffrey L. Roberts 07.03.2014 / 05:39

1 resposta

4

Teria sido suficiente dar uma olhada no bloco "QUOTING" na man page do bash ... (para encontrar um ponteiro para o bloco PARAMETERS onde é explicado)

/usr/bin/php test.php "$@"
    
por 07.03.2014 / 05:44