尝试mkdir时Shellvariables问题

任何想法这个代码有什么问题?

CLIENT_BUILD_DIR="~/Desktop/TempDir/" if [ ! -d $CLIENT_BUILD_DIR ] then { mkdir $CLIENT_BUILD_DIR } fi 

我得到的错误:mkdir:〜/桌面:没有这样的文件或目录。

很明显,目录在那里,如果我用〜/ Desktop / TempDir /

引号阻止了〜的扩展。

使用:

 CLIENT_BUILD_DIR=~/Desktop/TempDir/ if [ ! -d "$CLIENT_BUILD_DIR" ] then mkdir "$CLIENT_BUILD_DIR" fi 

为什么不简单:

 mkdir -p "$CLIENT_BUILD_DIR" 

注意-p

~字符在变量中使用时不能重新解释。

您可以改为使用CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/"