#!/bin/bash cd /opt/ mst start # 检查必要命令 command -v ibdev2netdev >/dev/null || { echo "错误:ibdev2netdev命令未找到"; exit 1; } command -v flint >/dev/null || { echo "错误:flint命令未找到"; exit 1; } # 固件文件定义 FW_FILE="fw-ConnectX7-rel-28_43_2566-MCX755106AS-HEA_Ax-UEFI-14.37.13-FlexBoot-3.7.500.signed.bin" [ -f "$FW_FILE" ] || { echo "错误:固件文件 $FW_FILE 不存在"; exit 1; } # 设备过滤和处理 ibdev2netdev -v | grep -Ev 'Umbriel|bond' | awk '{print $2}' | while read -r device; do # 提取最后一位数字 last_digit=${device##*_} # 检查是否为数字且为偶数 if [[ "$last_digit" =~ ^[0-9]+$ ]] && [ $((last_digit % 2)) -eq 0 ]; then echo "正在更新双数设备: $device" if ! flint -d "$device" -y -i "$FW_FILE" b; then echo "警告:设备 $device 更新失败" fi else echo "跳过非双数设备: $device" fi done echo "固件更新操作完成"