0

我需要检查新目录的创建和更改目录,并打印错误离子使他们失败,如下所示:

[ mkdir tmp && cd tmp ] || echo "error"

但我收到以下错误:

[: missing `]'
4

3 回答 3

1

&&不允许在test命令的括号内,因此缺少]的是bash认为应该在tmpand之间的那个&&

您的命令的正确形式是

mkdir tmp && cd temp || echo "error"

如果mkdir失败,(或成功cd后失败mkdir),则执行echo. 不需要test/[命令。

于 2013-05-16T17:03:03.240 回答
0
[ -d tmp ] || mkdir tmp

可能是您正在寻找的。这将检查目录是否存在,如果不存在则创建它。

[ -d tmp ] || mkdir tmp || echo "failure"

如果 mkdir 失败,则显示一条消息。

于 2013-05-16T16:56:06.807 回答
0

或更详细但更清晰的版本:

if [ ! -d temp ] # if there is no directory
then
     mkdir temp
fi
于 2013-05-16T17:12:12.697 回答