我有这样的代码
#!/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
这样做的正确方法是什么?
答案 0 :(得分:20)
在[和!]之间添加空格。之前也是如此。
#!/bin/bash
DIR="test_dir/";
if [ ! -d "$DIR" ]; then
# If it doesn't create it
mkdir $DIR
fi
引用变量也是个好主意:
mkdir "$DIR"
答案 1 :(得分:8)
添加一些空格:
if [ ! -d "$DIR" ]; then
# ^ ^
答案 2 :(得分:1)
您也可以尝试简单地说:
test -d "${dir}" || mkdir "${dir}"
如果目录不存在,这将创建目录。