如何制作if语句

时间:2013-05-16 16:52:36

标签: shell mkdir cd

我需要检查新目录的创建和更改目录,并且打印错误导致某人失败,如下所示:

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

但我收到以下错误:

[: missing `]'

3 个答案:

答案 0 :(得分:1)

&&命令的括号内不允许使用

test,因此]认为bash之间的tmp { &&

正确的命令形式是

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

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

答案 1 :(得分:0)

[ -d tmp ] || mkdir tmp

可能就是你要找的东西。这将检查目录是否存在,然后在目录不存在时创建它。

[ -d tmp ] || mkdir tmp || echo "failure"
如果mkdir失败,

会显示一条消息。

答案 2 :(得分:0)

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

if [ ! -d temp ] # if there is no directory
then
     mkdir temp
fi