port.sh

Gibt aus der übergebenen URL den Port aus. Falls keiner übergeben wurde, bezieht man sich auf den Standardport je nach HTTP oder HTTPS. http://abc.de:8080/test --> 8080   https://abc.de/test --> 443   http://abc.de/test --> 80 

 HOWTO: 

 $0 URL 

 Beispiel: 

 url="http://beispiel.de:8080/snapshot.cgi"

port=$(bash src/port.sh "$url")

echo "Verwendeter Port: $port"

# --> 8080 

 

 Script: 

 #!/bin/bash

url=$(echo "$1" | sed ':a; s/\([^ ]\) /\1%20/g; ta; s/^%20//; s/%20$//' | sed s'/ //'g)

#zerlege URL in Adresse und Port

addr=$(echo "$url" | grep -oP '^https?://\K[^:/]+')

port=$(echo "$url" | grep -oP ':\K[0-9]+')

#setze Standard-Port, wenn nicht anders angegeben

if [ -z "$port" ]; then

	if echo "$url" | grep -q "https"; then

		port="443"

	else

		port="80"

	fi

fi

echo "$port"

exit 0