Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在PHP函数exec()中使用linux内置实用程序compgen吗?_Php_Linux_Exec_Compgen - Fatal编程技术网

我可以在PHP函数exec()中使用linux内置实用程序compgen吗?

我可以在PHP函数exec()中使用linux内置实用程序compgen吗?,php,linux,exec,compgen,Php,Linux,Exec,Compgen,我需要使用PHP函数exec()获取Linux命令的完成变量。 我试试这个: $c = exec('compgen -c pyt'); 我只想得到这样的东西 python3.5m python3.5 python2.7 python2 python3 python3m python 但是我得到了一个错误: sh:1:组件:未找到 当我直接在终端输出中执行此命令时,是否正确: omix@omix:~$ compgen -c pyt python3.5m python3.5 python2

我需要使用PHP函数exec()获取Linux命令的完成变量。 我试试这个:

$c = exec('compgen -c pyt');
我只想得到这样的东西

python3.5m
python3.5
python2.7
python2
python3
python3m
python
但是我得到了一个错误:

sh:1:组件:未找到

当我直接在终端输出中执行此命令时,是否正确:

omix@omix:~$ compgen -c pyt 
python3.5m 
python3.5 
python2.7 
python2
python3 
python3m 
python

我还尝试使用函数shell_exec(),但没有成功。

最后我解决了这个问题。 我发现我在终端会话中使用了不同的shell,在运行PHP exec()或shell_exec()函数时:

omix@omix:~$ ps -p $$
  PID TTY          TIME CMD
15471 pts/0    00:00:00 bash
omix@omix:~$ php -a
Interactive mode enabled

php > echo shell_exec('ps -p $$');
  PID TTY          TIME CMD
15908 pts/0    00:00:00 sh
现在,我从PHP运行shell命令,如下所示:

$c = shell_exec('/bin/bash -c "compgen -c pyt"');
这对我有用