我可以在PHP函数exec()中使用linux内置实用程序compgen吗?
我需要使用PHP函数exec()获取Linux命令的完成变量。 我试试这个:我可以在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
$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"');
这对我有用