我需要使用PHP函数exec()获得Linux命令的完成变体。我试试看:
$c = exec('compgen -c pyt');我除了得到这样的东西
python3.5m
python3.5
python2.7
python2
python3
python3m
python但是我却得到了一个错误:
sh: 1: compgen:找不到
当我在终端输出中直接执行此命令时,是正确的:
omix@omix:~$ compgen -c pyt
python3.5m
python3.5
python2.7
python2
python3
python3m
python我也尝试使用函数shell_exec(),但是它没有工作。
发布于 2018-06-01 09:42:04
我终于解决了这个问题。我发现在我的终端会话中和在运行PHP ()(或shell_exec())函数时使用了不同的shell:
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"');这对我有用。
https://stackoverflow.com/questions/50639997
复制相似问题