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à.