10

我有这样的代码

#!/bin/bash 
DIR="test_dir/";
if [! -d "$DIR"]; then
    # If it doesn't create it
    mkdir $DIR
fi

但是为什么执行它给了我这个:

./mycode.sh: line 16: [!: command not found

正确的方法是什么?

4

3 回答 3

27

在 [ 和 ! 之间添加空格。在 ] 之前也是如此。

#!/bin/bash 
DIR="test_dir/";
if [ ! -d "$DIR" ]; then
    # If it doesn't create it
    mkdir $DIR
fi

引用变量也是一个好主意:

    mkdir "$DIR"
于 2013-08-08T06:56:21.963 回答
10

添加一些空格:

if [ ! -d "$DIR" ]; then
#   ^           ^
于 2013-08-08T06:56:31.297 回答
1

您也可以尝试简单地说:

test -d "${dir}" || mkdir "${dir}"

如果目录不存在,这将创建目录。

于 2013-08-08T07:03:42.890 回答