bash script for switching network order

#!/bin/bash

# Get the first network service in the order
FIRST_SERVICE=$(networksetup -listnetworkserviceorder | grep "(1)" | awk '{print $2}')

# Define your two orders
ORDER_WIFI_FIRST=(
	"Wi-Fi"
	"USB 10/100/1000 LAN"
	"Thunderbolt Bridge"
	"iPhone USB"
)

ORDER_LAN_FIRST=(
	"USB 10/100/1000 LAN"
	"Wi-Fi"
	"Thunderbolt Bridge"
	"iPhone USB"
)

echo "FIRST_SERVICE: '$FIRST_SERVICE'"
  
if [[ "$FIRST_SERVICE" == "Wi-Fi" ]]; then
	echo "Wi-Fi is first. Switching to LAN first..."
	networksetup -ordernetworkservices "${ORDER_LAN_FIRST[@]}"
	echo "✅ LAN is now first."
else
	echo "LAN is first. Switching to Wi-Fi first..."
	networksetup -ordernetworkservices "${ORDER_WIFI_FIRST[@]}"
	echo "✅ Wi-Fi is now first."
fi
Tags