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

如何通过Shell脚本运行Symfony命令?

循环执行Symfony命令的Shell脚本实现

以下脚本可用于循环执行指定的Symfony命令,支持超时控制,并将执行状态(成功、超时、错误)记录到日志文件中。你只需将超时时间和完整的Symfony命令作为参数传入脚本即可。

修改后的Shell脚本

timeout_seconds=$1
# 移除第一个参数(超时时间),剩余参数作为完整的Symfony命令
shift
symfony_command="$@"
log_file="script.log"

# 无限循环执行逻辑
while true; do
    # 重复执行Symfony命令,直到超时或执行失败
    while timeout $timeout_seconds $symfony_command; do
        # 仅当命令在超时时间内成功执行时触发
        echo "$(date): Symfony命令执行成功" >> $log_file
    done

    # 根据退出码判断执行状态
    exit_code=$?
    if [ $exit_code -eq 124 ]; then
        echo "$(date): Symfony命令执行超时" >> $log_file
    else
        echo "$(date): Symfony命令执行出错,退出码: $exit_code" >> $log_file
    fi
done

使用方法

在项目目录下执行脚本,第一个参数为超时时间(单位:秒),后续参数为完整的Symfony命令(包括命令的参数)。

示例:

./your_script.sh 30 symfony mycommand

该示例会以30秒为超时限制,循环执行symfony mycommand命令。

关键逻辑说明

  • 参数处理:通过shift命令移除第一个超时参数,$@获取剩余的所有参数作为完整的Symfony命令,支持带参数的Symfony命令。
  • 超时控制:timeout命令限制命令的最长执行时间,若超时会返回退出码124。
  • 循环执行:内层while循环会持续重复执行命令,直到命令执行失败或超时;外层while true保证整个脚本无限循环运行。
  • 日志记录:每次执行状态都会追加到script.log文件,包含时间戳和具体状态信息,便于后续排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:43:17