You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux终端执行shell_exec提示command not found及语法错误咨询

问题原因
  • shell_exec 不是Bash终端支持的内置命令,也不是Linux系统预装的独立可执行程序,它是PHP编程语言提供的内置函数,作用是在PHP运行环境中调用系统shell执行命令并捕获输出。直接在Bash交互终端输入这个命令,系统找不到对应可执行程序,自然会返回command not found报错。
  • Bash本身的语法规则不支持函数名("参数")这种调用写法,输入shell_exec("pwd")时,Bash解析到括号、引号这类不符合shell语法规则的标记,就会直接抛出语法错误。
解决方法

根据实际使用场景选择对应方案即可:

  • 如果只是想在Linux终端执行shell命令(比如查看当前路径的pwd),不需要套任何函数封装,直接输入命令本身回车执行就行:
    # 直接执行pwd命令查看当前路径
    pwd
    
  • 如果确实需要使用PHP的shell_exec函数能力,必须在PHP运行环境中调用,不能直接在Bash命令行输入函数语句:
    • 方式1:编写PHP脚本文件调用,比如新建test.php写入如下内容:
      <?php
      // 调用shell_exec执行pwd命令并打印结果
      echo shell_exec('pwd');
      ?>
      
      保存后在终端执行php test.php即可拿到执行结果。
    • 方式2:用PHP命令行的-r参数直接执行单行代码,不需要创建单独的脚本文件:
      php -r "echo shell_exec('pwd');"
      

内容的提问来源于stack exchange,提问作者sugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:48:32