#!/bin/bash -e HOSTNAME="$(echo "$1" | tr '[:upper:]' '[:lower:]')" if [ "$HOSTNAME" == "" ]; then echo "Usage: $0 " exit 1 fi if [ "$HOSTNAME" == "localhost" ]; then echo "Cannot set hostname to 'localhost'" exit 1 fi if [ "$HOSTNAME" =~ ^.*\.local$ ]; then echo "Hostname cannot end with '.local'" exit 1 fi if [[ ! "$HOSTNAME" =~ ^[a-zA-Z][a-zA-Z0-9-]{0,62}$ ]]; then echo "Invalid hostname '$HOSTNAME'" exit 1 fi sed -i "s/^127.0.1.1\([[:space:]]*\).*$/127.0.1.1\1$HOSTNAME/" /etc/hosts echo "$HOSTNAME" > /etc/hostname