Skip to content

Instantly share code, notes, and snippets.

@stvvt
Forked from irazasyed/manage-etc-hosts.sh
Last active September 26, 2018 05:00
Show Gist options
  • Save stvvt/65babbf7b49858470028da62eb1bec95 to your computer and use it in GitHub Desktop.
Save stvvt/65babbf7b49858470028da62eb1bec95 to your computer and use it in GitHub Desktop.
Bash Script to Manage /etc/hosts file for adding/removing hostnames.
#!/usr/bin/env bash
# PATH TO YOUR HOSTS FILE
: ${ETC_HOSTS="/etc/hosts"}
# DEFAULT IP FOR HOSTNAME
: ${IP="127.0.0.1"}
# Hostname to add/remove.
HOSTNAME=$1
VERBOSE=false
function removehost() {
if [ -n "$(grep $HOSTNAME /etc/hosts)" ]
then
[ ${VERBOSE} == true ] && echo "$HOSTNAME Found in your $ETC_HOSTS, Removing now..."
sudo sed -i".bak" "/$HOSTNAME/d" $ETC_HOSTS
else
[ ${VERBOSE} == true ] && echo "$HOSTNAME was not found in your $ETC_HOSTS";
fi
}
function addhost() {
HOSTNAME=$1
HOSTS_LINE="$IP\t$HOSTNAME"
if [ -n "$(grep $HOSTNAME /etc/hosts)" ]
then
[ ${VERBOSE} == true ] && echo "$HOSTNAME already exists : $(grep $HOSTNAME $ETC_HOSTS)"
else
echo "Adding $HOSTNAME to your $ETC_HOSTS";
sudo -- sh -c -e "echo '$HOSTS_LINE' >> /etc/hosts";
if [ -n "$(grep $HOSTNAME /etc/hosts)" ]
then
[ ${VERBOSE} == true ] && echo "$HOSTNAME was added succesfully \n $(grep $HOSTNAME /etc/hosts)";
else
[ ${VERBOSE} == true ] && echo "Failed to Add $HOSTNAME, Try again!";
fi
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment