画面を介して実行されるシェルコマンドを含むPHPファイルがありますが、コマンドは正常に実行されますが、別のファイルに書き込んでPHPの最後で読み取ることなく、これをPHPに出力する方法があるかどうか疑問に思っていました.
PHP - trace() はただの凝った print_r()
$cmd = 'ls -h /';
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"'));
ウェブ出力
NULL
画面出力
www-data@:/home/ubuntu$ ls -h /
bin build etc initrd.img lib media opt root selinux sys usr vmlinuz
boot dev home initrd.img.old lost+found mnt proc sbin srv tmp var vmlinuz.old
助言がありますか?
- 編集 -
screen を使用している理由の 1 つは、特定のコマンドが直接出力されないことです。
PHP
$cmd = 's3ls';
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"'));
trace(shell_exec($cmd));
ウェブ出力
trace:NULL
trace:NULL
画面
www-data@:/home/ubuntu$ s3ls
+---------------+--------------------------+
| Name | CreationDate |
+---------------+--------------------------+
| bucket | 2012-05-31T13:08:51.000Z |
| bucket | 2012-01-17T16:51:58.000Z |
| bucket | 2012-03-31T11:19:54.000Z |
+---------------+--------------------------+