17

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

CLIENT_BUILD_DIR="~/Desktop/TempDir/"

if [ ! -d $CLIENT_BUILD_DIR ]
then
   {
      mkdir $CLIENT_BUILD_DIR
   }
fi

我收到错误:mkdir: ~/Desktop: 没有这样的文件或目录。

显然目录在那里,如果我用 ~/Desktop/TempDir/ 替换变量,脚本就可以工作

4

3 回答 3

27

引号防止 ~ 的扩展。

利用:

CLIENT_BUILD_DIR=~/Desktop/TempDir/

if [ ! -d "$CLIENT_BUILD_DIR" ]
then mkdir "$CLIENT_BUILD_DIR"
fi
于 2013-04-18T14:07:09.723 回答
13

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

你可以CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/"改用。

于 2013-04-18T14:07:07.243 回答
1

mkdir ${CLIENT_BUILD_DIR}会做。如果已经存在,则不会创建目录。

于 2019-11-08T19:54:58.043 回答