Eu mudaria um pouco a abordagem que você segue em seu script: verifique se "git" existe, em vez de verificar se o processo de instalação não está em execução:
#!/bin/bash
# check if user has git installed and propose to install if not installed
if [ "$(which git)" ]; then
echo "You already have git. Exiting.."
exit
else
XCODE_MESSAGE="$(osascript -e 'tell app "System Events" to display dialog "Please click install when Command Line Developer Tools appears"')"
if [ "$XCODE_MESSAGE" = "button returned:OK" ]; then
xcode-select --install
else
echo "You have cancelled the installation, please rerun the installer."
# you have forgotten to exit here
exit
fi
fi
until [ "$(which git)" ]; do
echo -n "."
sleep 1
done
echo ""
echo 'Xcode has finished installing'