Tach!
Es geht vor allem um genau das von Dir so schön behandelte Problem: Den Kontextwechsel. Die IPs werden mehrfach als Argumente zu Programmen durchgereicht. Also darum, ob
ip=$(echo -n "${1}" | tr -cd '0123456789./'); bt=$(echo -n "${2}" | tr -cd '0123456789';
reicht. $ip soll danach IPs mit Netzwerkmasken enthalten dürfen, $bt Integers.
Wenn man mit viel Skepsis an die Sache rangeht, wird man das wohl so machen wollen. Die Frage wäre aber, kann es überhaupt sein, dass anstelle der IP-Adresse etwas anderes als eine IP-Adresse kommt? Ziehst du dir die aus einem String mit weiteren Daten drin, oder bekommst du sie explizit durchgereicht und es ist unwahrscheinlich, dass da anderer Text geliefert wird? Kommt die Adresse aus dem TCP/IP-Paket und muss korrekt sein, damit das Paket überhaupt verarbeitet und bis zu dir kommt? Kommt die Angabe aus einer Konfigurationsdatei und man benötigt Adminrechte, sie zu manipulieren? Ist dein Script besser geschützt als die Konfigurationsdatei, oder ist es eh zu spät, wenn jemand Unbefugtes mit Adminrechten daherkommt?
Und ob ich was vergessen habe...
IPv6
dedlfix.