# this script addresses the problem of /etc/profile not being sourced # because ziggy's BASH shell is not a "login shell." /etc/profile is # intended to be sourced only once by the first shell, but it never runs # automatically upon login because the first shell isn't invoked as a login # shell. .bashrc runs for all interactive shells, so we can use it to # replace the current shell process with a login shell. set -euo pipefail USER="${USER:-$( id -u )}" SHELL="${SHELL:-$( getent passwd "${USER}" | cut -d : -f 7 )}" if [ -z "${SHELL}" ] ; then echo 1>&2 "${0}: can't set SHELL; giving up" exit 1 fi HOME="${HOME:-$( getent passwd "${USER}" | cut -d : -f 6 )}" if [ -z "${HOME}" ] ; then echo 1>&2 "${0}: can't set HOME; giving up" exit 1 fi cd "${HOME}" SHELL="${SHELL}" exec -a "-${SHELL##*/}" "${SHELL}"