命令没有在Bash的IF-ELSE条件下使用

我有这样的代码

#!/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 

什么是正确的方法来做到这一点?

在[和!之间添加空格。 之前]以及。

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

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

  mkdir "$DIR" 

添加一些空格:

 if [ ! -d "$DIR" ]; then # ^ ^ 

你也可以尝试简单地说:

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

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