
shell_exec() 是 PHP 内置函数,只能在 PHP 运行环境中执行;在 Linux 终端中直接输入 shell_exec 或 shell_exec("pwd") 会报错,因为 Bash 并不认识该函数——必须通过 PHP CLI(如 php -r 或 php -a)来调用。
php 中的 shell_exec() 函数不能直接在 bash 终端中调用,因为它是 php 语言层面的内置函数,而非系统命令或 shell 可执行程序。当你在终端中输入 shell_exec 或 shell_exec("pwd") 时,bash 试图将其当作外部命令解析,自然会返回 -bash: shell_exec: command not found 或语法错误。
要正确使用 shell_exec(),必须在 PHP 执行上下文中运行。以下是两种推荐方式:
✅ 方式一:使用 php -r(一行式执行)
适用于快速测试或脚本化调用:
php -r 'echo shell_exec("pwd");'
输出示例:
/home/yourusername
⚠️ 注意:参数需用单引号包裹整个 PHP 代码,双引号用于内部 Shell 命令;若需嵌入变量或复杂逻辑,建议转为完整 PHP 文件。
✅ 方式二:进入 PHP 交互式模式(REPL)
适合调试或探索性执行:
php -a
然后在提示符下输入:
php > echo shell_exec('ls -l /tmp | head -3');
按 Enter 即可执行并输出结果。
? 重要提醒:
- shell_exec() 返回的是命令的标准输出字符串(含末尾换行符),如需可见结果,务必配合 echo 或 print 输出;
- 确保 PHP 已安装且 shell_exec 未被禁用(检查 disable_functions 配置项);
- 生产环境中慎用该函数,避免命令注入风险——务必对用户输入进行严格过滤与转义。
总结:不要把 PHP 函数当成 Shell 命令使用;始终通过 php CLI 工具启动 PHP 环境,再调用其函数。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











