Nach kurzer Debatte mit Sauerland, will ich noch eine Fehlerquelle benennen:
Das Script collectNWData.sh ist ein Bash-Script, und es verwendet den Bash-Operator =~ mit einem RegEx, um IP-Adressen und dergleichen zu "matchen"
Das muss man jetzt nicht verstehen.
Aber wichtig zu verstehen ist, dass man ein solches Script NICHT mit sh /Pfad/zum/Script.sh aufrufen sollte.
Bei openSUSE ist das nicht so wichtig, weil dort die sh nach bash gelinkt ist.
Bei anderen Systemen ist das nicht so.
Mit einem Aufruf als sh und nicht als bash schaltet sich die bash in den POSIXLY_CORRECT Modus.
Das heißt, dass alle modernen Funktionen nicht mehr existieren.
Man kann dann nur noch Shellzeilen schreiben, die sich an diesen Standard halten.
Eine sehr eingeschränkte Bash.
Und der Matching-Operator =~ existiert auch nicht mehr.
Deshalb sollte man solche Scripte mit bash /Pfad/zum/Script aufrufen.
Oder gleich mit absolutem Pfad ohne Voranstellung von sh oder bash
./meinScript (Ruft meinScript im aktuellen Verzeichnis)
Damit regelt der Shebang (die allererste Zeile im Script den Aufruf.
Als Shebang #!/bin/bash läuft das Script als Bash-Script
Mit #!/bin/sh als posixkompatibles Shellscript.