#!/bin/bash NETWORKMANAGER_NETCONFIG="/var/run/netconfig/NetworkManager.netconfig" dns-update() { tmpfile=$(mktemp) sed --regexp-extended "s/(DNSSERVERS=)'(.*?)'/\1'$@ \2'/g" "${NETWORKMANAGER_NETCONFIG}" > "${tmpfile}" netconfig modify -s NetworkManager -I "${tmpfile}" rm -f "${tmpfile}" } dns-restore() { tmpfile=$(mktemp) sed --regexp-extended "s/$@ //g" "${NETWORKMANAGER_NETCONFIG}" > "${tmpfile}" netconfig modify -s NetworkManager -I ${tmpfile} rm -f ${tmpfile} } dns() { local cmdname=$1; shift "dns-$cmdname" "$@" } if declare -f "$1" >/dev/null 2>&1; then # invoke that function, passing arguments through "$@" # same as "$1" "$2" "$3" ... for full argument list else echo "Function $1 not recognized" >&2 exit 1 fi