2016-05-12 90 views
0

我想显示一个shell脚本的输出,就像它通过php脚本显示在PuTTy或gnome-terminal中一样。我试着用了shell_exec通过调用它:通过shell_exec中的自定义文件输出shell输出php

$output = shell_exec('echo "return value: ";foo=$(nameOfFileToExecute); echo $foo');

在哪种方式,我可以得到它存储在Web服务器上的脚本的返回字符串?

+0

你尝试'回声$ output',或者如果你期待多行输出尝试'passthru',而不是'shell_exec' –

+0

我做输出回波在我phpfile 。它看起来像nameOfFileToExecute不会被执行(因此没有输出存储在foo中)。 – PHPAtWork

回答

0

试试这个:

<?php 
     exec($your_shell_command_as_string, $arrayOfReturnedData); 

     // NOW YOU CAN ACCESS ALL THE VALUES RETURNED BY THE SHELL COMMANDS VIA THE ARRAY. 
     var_dump($arrayOfReturnedData); // DUMPS THE RESULTS OF THE SHELL COMMAND... 

希望这有助于....

+0

好的。输出是数组(0){}。也许与脚本的工作目录有关的问题,因为它位于虚拟主机上? – PHPAtWork

+0

确切地说......如果有任何东西,它应该返回一个包含数据/内容的数组.... ***也许,您可能需要更改您的目录并重试... *** – Poiz

0

有可能是与nameOfFileToExecute一个问题,所以尽量用全路径/path/to/executable/nameOfFileToExecute

0

你必须给文件的完整路径

并使用此2> & 1并知道错误

尝试这样的事情

$comando = "sh pathTofile/location/ftpgesdoc.sh"; 

if(exec("$comando 2>&1", $output, $return_var)) 
{ 
    print_r($output); 
    echo "<br>"; 
    print_r($return_var); 

    }