PHP 语法检查命令 php -l “$file“ > /dev/null 2>&1;

用户想了解 if php -l "$file" > /dev/null 2>&1; then 这行 bash 脚本的意思。我需要解释清楚每个部分的含义。

这行脚本是 PHP 语法检查命令,让我拆解说明:

bash 复制代码
if php -l "$file" > /dev/null 2>&1; then
部分 含义
php -l PHP 的 lint 模式,只检查语法不执行代码
"$file" 要检查的 PHP 文件路径
> /dev/null 标准输出(正常信息)重定向到黑洞,即不显示
2>&1 错误输出(2)重定向到标准输出(1),即错误也不显示
if ...; then 如果命令执行成功(返回 0),则执行 then 后面的代码

简单理解

bash 复制代码
# 检查 application/route.php 有没有语法错误
if php -l "application/route.php" > /dev/null 2>&1; then
    echo "语法正确"
else
    echo "语法错误"
fi

实际效果对比

不加隐藏输出:

bash 复制代码
$ php -l application/route.php
No syntax errors detected in application/route.php

加了 > /dev/null 2>&1

bash 复制代码
$ php -l application/route.php > /dev/null 2>&1
$  # 没有任何输出,只返回成功/失败状态

在脚本中的作用

bash 复制代码
for file in "${PHP_FILES[@]}"; do
    if php -l "$file" > /dev/null 2>&1; then
        echo "[OK] $file"      # 语法正确,显示绿色 OK
    else
        echo "[FAIL] $file 语法错误"  # 语法错误,显示红色 FAIL
        exit 1                  # 退出部署
    fi
done

总结:这行代码静默检查 PHP 文件语法,正确就继续,错误就停止部署。

相关推荐
0x000716 小时前
译 Anders Hejlsberg 谈 C# 与 .NET
开发语言·c#·.net
czhaii16 小时前
基于51单片机的Modbus从机通信系统
开发语言·单片机
elseif12316 小时前
【C++】vector 详细版
开发语言·c++·算法
剑神一笑16 小时前
Linux lsof 命令深度解析:从文件描述符到进程追踪
linux·运维·php
codingPower16 小时前
JAVA后端安全进阶:基于HMAC-SHA256+Nonce+Timestamp的API防重放攻击方案
java·开发语言·spring boot·安全
暗冰ཏོ16 小时前
Go 语言从入门到后端项目实战完整指南
开发语言·后端·golang·go·go语言
Xin_ye1008616 小时前
C# 零基础到精通教程 - 第十七章:前端集成——Blazor 基础
开发语言·c#
LDR00616 小时前
LDR6020:多 Type‑C 端口角色管理与外设上电顺序的智慧核心
c语言·开发语言·云计算
小杍随笔16 小时前
【Rust 工具链管理完全指南:rustup toolchain 命令实战详解】
开发语言·后端·rust
五月君_17 小时前
放弃 Python,Kimi 用 TS + Node.js 重写了一个 Kimi Code
开发语言·python·node.js