【发布时间】:2013-08-09 19:00:22
【问题描述】:
我有这样的代码
#!/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
正确的做法是什么?
【问题讨论】:
-
名称
[是命令的名称,不是随机的标点符号。正如您需要在cat/etc/passwd中的cat和/etc/passwd之间有一个空格一样,您也需要在[(命令名称)和!(它的参数之一)之间有一个空格。同样,最后一个参数必须是]。当 shell 没有内置test(又名[)并且唯一的test命令是/bin/test及其(硬)链接/bin/[.