Poniższy skrypt shell'owy operuje na pliku "/tmp/snmptemp_smart" i wycina z niego niezbędne mi dane.
Próbuję coś podobnego stworzyć w PHP (operując też na tym samym pliku "/tmp/snmptemp_smart"), ale po całym dniu mam mizerne efekty sad.gif.
Teraz zacząłem robić różne próby z funkcją foreach(), ale nie wiem czy to dobra droga.

Czy ktoś może pomóc, proszę ?

Nie wiem jak mam wydłubać w PHP poszczególne stringi, a potem jeszcze je przyrównać

Skrypt:
  1. #!/bin/bash
  2. FILENAME="/tmp/snmptemp_smart"
  3. grep Temperature $FILENAME | awk -F '"' '{print $2}' |
  4. while read SLOT ; do
  5. TEMP=$(grep Gauge32 $FILENAME | awk {'print $4'} | tail -n +$COUNT | head -n 1)
  6. echo "$SLOT = $TEMP"
  7. COUNT=$((COUNT+1))
  8. done



Plik wejściowy: /tmp/snmptemp_smart
  1. iso.3.6.1.4.1.2352.2.4.1.4.1.2.18.1 = STRING: "Temperature sensor on slot 1"
  2. iso.3.6.1.4.1.2352.2.4.1.4.1.2.29.1 = STRING: "Temperature sensor on slot 7"
  3. iso.3.6.1.4.1.2352.2.4.1.4.1.2.31.1 = STRING: "Temperature sensor on slot 8"
  4. iso.3.6.1.4.1.2352.2.4.1.4.1.2.33.1 = STRING: "Temperature sensor on slot 9"
  5. iso.3.6.1.4.1.2352.2.4.1.4.1.2.35.1 = STRING: "Temperature sensor on slot 10"
  6. iso.3.6.1.4.1.2352.2.4.1.4.1.2.37.1 = STRING: "Temperature sensor on slot 11"
  7. iso.3.6.1.4.1.2352.2.4.1.4.1.2.39.1 = STRING: "Temperature sensor on slot 12"
  8. iso.3.6.1.4.1.2352.2.4.1.4.1.3.18.1 = Gauge32: 45
  9. iso.3.6.1.4.1.2352.2.4.1.4.1.3.29.1 = Gauge32: 40
  10. iso.3.6.1.4.1.2352.2.4.1.4.1.3.31.1 = Gauge32: 41
  11. iso.3.6.1.4.1.2352.2.4.1.4.1.3.33.1 = Gauge32: 46
  12. iso.3.6.1.4.1.2352.2.4.1.4.1.3.35.1 = Gauge32: 48
  13. iso.3.6.1.4.1.2352.2.4.1.4.1.3.37.1 = Gauge32: 45
  14. iso.3.6.1.4.1.2352.2.4.1.4.1.3.39.1 = Gauge32: 44


Output:
  1. Temperature sensor on slot 1 = 45
  2. Temperature sensor on slot 7 = 40
  3. Temperature sensor on slot 8 = 41
  4. Temperature sensor on slot 9 = 46
  5. Temperature sensor on slot 10 = 48
  6. Temperature sensor on slot 11 = 45
  7. Temperature sensor on slot 12 = 44