Added Catalina (simple as 123 thanks to @harvey! )
#!/bin/bash
ver=`sw_vers -productVersion`
IFS='.' read -r -a array <<< "$ver"
if [ ${array[1]} -eq 6 ]; then
echo "Version ${ver} is Snow Leopard"
osascript -e 'do shell script "sudo dscacheutil -flushcache" with administrator privileges'
elif [ ${array[1]} -ge 7 -a ${array[1]} -le 9 ]; then
echo "Version ${ver} is Lion, Mountain Lion or Mavericks"
osascript -e 'do shell script "sudo killall -HUP mDNSResponder" with administrator privileges'
elif ([ ${array[1]} -eq 10 ] && [ -z ${array[2]} ]) || ([ ${array[1]} -eq 10 ] && [ ${array[2]} -le 3 ]); then
echo "Version ${ver} is Yosemite and 10.10.3 or less"
osascript -e 'do shell script "sudo discoveryutil mdnsflushcache" with administrator privileges'
elif [ ${array[1]} -eq 10 ] && [ ${array[2]} -ge 4 ]; then
echo "Version ${ver} is Yosemite and 10.10.4 or higher"
osascript -e 'do shell script "sudo killall -HUP mDNSResponder" with administrator privileges'
elif [ ${array[1]} -ge 11 -a ${array[1]} -le 14 ]; then
echo "Version ${ver} is El Capitan, Sierra, High Sierra or Mojave"
osascript -e 'do shell script "sudo killall -HUP mDNSResponder" with administrator privileges'
elif [ ${array[1]} -ge 14 -a ${array[1]} -le 15 ]; then
echo "Version ${ver} is Catalina"
osascript -e 'do shell script "sudo killall -HUP mDNSResponder" with administrator privileges'
else
echo "Version ${ver} is Unknown"
exit 1
fi