任何想法这个代码有什么问题?
CLIENT_BUILD_DIR="~/Desktop/TempDir/"
if [ ! -d $CLIENT_BUILD_DIR ]
then
{
mkdir $CLIENT_BUILD_DIR
}
fi
我收到错误:mkdir:〜/ Desktop:没有这样的文件或目录。
显然目录就在那里,如果我用〜/ Desktop / TempDir /
替换变量,脚本就可以工作了答案 0 :(得分:20)
引号阻止〜的扩展。
使用:
CLIENT_BUILD_DIR=~/Desktop/TempDir/
if [ ! -d "$CLIENT_BUILD_DIR" ]
then mkdir "$CLIENT_BUILD_DIR"
fi
答案 1 :(得分:8)
为什么不简单:
mkdir -p "$CLIENT_BUILD_DIR"
注意-p
。
答案 2 :(得分:6)
在变量中使用时,~
字符不会重新解释。
您可以改为使用CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/"
。
答案 3 :(得分:2)
mkdir ${CLIENT_BUILD_DIR}
可以。如果目录已经存在,将不会创建。