package='widdershins'
if [ `npm list -g | grep -c $package` -eq 0 ]; then
npm install $package --no-shrinkwrap
fi
备选方案包括目录检查:
package='widdershins'
if [ `npm list -g | grep -c $package` -eq 0 -o ! -d node_module ]; then
npm install $package --no-shrinkwrap
fi
说明:
-
npm list -g
列出所有已安装的软件包
-
grep -c $package
打印包含$package的行数(在本例中替换为“widdershins”)
-
-eq
是一个相等的检查,例如,等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于等于。
$a -eq $b
如果$a等于$b,则返回true,否则返回false。
-
-d
检查给定参数是否为目录(如果是,则返回true)
-
!
是求反运算符,在我们的示例中是求反-d结果
-
-o
是逻辑or运算符
综上所述:
-
第一个代码:如果安装了$包,则-eq结果为false,这将导致if语句为false。如果未安装$package,则-eq结果为true(If语句也为true)。
-
第二个代码:除了第一个代码的描述之外,如果node\u模块是一个目录,那么if语句为false。如果node\u模块不是目录,则If语句为true。由于逻辑or连接,这与-eq结果无关。
This
也可以帮助你。