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 文件语法,正确就继续,错误就停止部署。

相关推荐
BingoGo1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982072 天前
PHP 扩展——从入门到理解
php
鹏仔先生3 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术3 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园3 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob3 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享3 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.3 天前
C语言--day30
c语言·开发语言