Le virgolette impediscono l'espansione di ~.
Usa:
CLIENT_BUILD_DIR=~/Desktop/TempDir/
if [ ! -d "$CLIENT_BUILD_DIR" ]
then mkdir "$CLIENT_BUILD_DIR"
fi
Il ~ carattere non viene reinterpretato quando utilizzato in una variabile.
Puoi usare CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/" invece.
mkdir ${CLIENT_BUILD_DIR} andrà bene. Non verrà creata alcuna directory se esiste già.