#!/bin/bash

# 获取符合条件的 Mellanox 网卡 PCI 地址列表
pci_devices=$(lspci | grep Mellanox | grep -Ev 'Infi|X-5|0\.1' | awk '{print $1}')

# 检查是否找到设备
if [ -z "$pci_devices" ]; then
    echo "未找到符合条件的 Mellanox 网卡设备。"
    exit 1
fi

echo "正在查询 Mellanox 网卡序列号 (SN)..."
echo "----------------------------------"

# 遍历每个 PCI 设备并查询序列号
for pci in $pci_devices; do
    echo "PCI 设备: $pci"
    serial=$(lspci -vvv -s "$pci" | grep -i serial)
    
    if [ -n "$serial" ]; then
        echo "序列号: $serial"
    else
        echo "未找到序列号信息。"
    fi
    
    echo "----------------------------------"
done
