Bash 这个shell测试实现了什么

Bash 这个shell测试实现了什么,bash,shell,virtualenv,Bash,Shell,Virtualenv,我有一个非常简单的问题,我无法回答。在shell中,此命令将执行什么操作: test -d $VIRTUAL_ENV || virtualenv $VIRTUAL_ENV 它似乎在测试virtualenv目录是否存在,但我不明白if如何处理这些信息。它是否总是在事后创建virtualenv,还是仅在它不存在的情况下才创建?该|是or条件。因此,这将测试$VIRTUAL_ENV目录是否存在。如果没有,它将运行virtualenv$VIRTUAL\u ENV 其他例子: $ test -d /tm

我有一个非常简单的问题,我无法回答。在shell中,此命令将执行什么操作:

test -d $VIRTUAL_ENV || virtualenv $VIRTUAL_ENV

它似乎在测试virtualenv目录是否存在,但我不明白if如何处理这些信息。它是否总是在事后创建virtualenv,还是仅在它不存在的情况下才创建?

|
是or条件。因此,这将测试
$VIRTUAL_ENV
目录是否存在。如果没有,它将运行
virtualenv$VIRTUAL\u ENV

其他例子:

$ test -d /tmp || echo "yes"
$
$ test -d /tmpblabla || echo "this dir does not exist"
this dir does not exist
$ test -d /tmp && echo "/tmp exists" || echo "yes"
/tmp exists

|
是OR条件。因此,这将测试
$VIRTUAL_ENV
目录是否存在。如果没有,它将运行
virtualenv$VIRTUAL\u ENV

其他例子:

$ test -d /tmp || echo "yes"
$
$ test -d /tmpblabla || echo "this dir does not exist"
this dir does not exist
$ test -d /tmp && echo "/tmp exists" || echo "yes"
/tmp exists

它测试目录
$VIRTUAL_ENV
是否存在,并使用
virtualenv
创建它。它测试目录
$VIRTUAL_ENV
是否存在,并使用
virtualenv
创建它