#!/bin/bash echo "=== 步骤1: 获取 Slot 信息并保存到 debug.log ===" dmidecode -t slot | grep -e "Designation" -e "Bus Address" -e "ID" 2>&1 | tee debug.log echo "" echo "=== 步骤2: 提取 SW*_Slot1、4、5、8 的 ID 序号 ===" echo "|--------|---------------|-------|" echo "| Slot | Designation | ID |" echo "|--------|---------------|-------|" grep "Designation: SW.*_Slot" debug.log | while read -r line; do designation=$(echo "$line" | sed 's/.*Designation: //') num=$(echo "$designation" | grep -oP 'Slot\K[0-9]+') if [[ "$num" == "1" || "$num" == "4" || "$num" == "5" || "$num" == "8" ]]; then id=$(grep -A1 "$designation" debug.log | grep "ID:" | awk '{print $2}') printf "| %-6s | %-13s | %-5s |\n" "Slot$num" "$designation" "$id" fi done echo "" echo "=== 步骤3: 提取 SW*_OAM_0 到 7 的 ID 序号 ===" echo "|--------|---------------|-------|" echo "| OAM | Designation | ID |" echo "|--------|---------------|-------|" grep "Designation: SW.*_OAM" debug.log | while read -r line; do designation=$(echo "$line" | sed 's/.*Designation: //') num=$(echo "$designation" | grep -oP 'OAM_\K[0-9]+') if [[ "$num" =~ ^[0-7]$ ]]; then id=$(grep -A1 "$designation" debug.log | grep "ID:" | awk '{print $2}') printf "| %-6s | %-13s | %-5s |\n" "OAM_$num" "$designation" "$id" fi done echo "" echo "=== 汇总结果 ===" echo "" echo "Slot 设备:" echo " Slot1 → SW0 → ID: $(grep "Designation: SW0_Slot1" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " Slot4 → SW1 → ID: $(grep "Designation: SW1_Slot4" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " Slot5 → SW2 → ID: $(grep "Designation: SW2_Slot5" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " Slot8 → SW3 → ID: $(grep "Designation: SW3_Slot8" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo "" echo "OAM 设备:" echo " OAM_0 → SW1 → ID: $(grep "Designation: SW1_OAM_0" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_1 → SW1 → ID: $(grep "Designation: SW1_OAM_1" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_2 → SW2 → ID: $(grep "Designation: SW2_OAM_2" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_3 → SW2 → ID: $(grep "Designation: SW2_OAM_3" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_4 → SW0 → ID: $(grep "Designation: SW0_OAM_4" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_5 → SW0 → ID: $(grep "Designation: SW0_OAM_5" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_6 → SW3 → ID: $(grep "Designation: SW3_OAM_6" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo " OAM_7 → SW3 → ID: $(grep "Designation: SW3_OAM_7" -A1 debug.log | grep "ID:" | awk '{print $2}')" echo "" echo "=== 完成 ==="