为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查安装在 bash 脚本中的 composer 包

如何检查安装在 bash 脚本中的 composer 包

PHP
慕侠2389804 2021-07-07 16:07:57
如果没有安装在 bash 脚本中,我正在尝试安装 composer 包。但是现在不行了,no_package函数总是通过#!/bin/bash -eno_package() {    composer show | grep matchish/laravel-scout-elasticsearch | test}if [ no_package ]; then  composer require "matchish/laravel-scout-elasticsearch"else  echo 'Package installed'fiUPD:这是解决方案package_installed() {    composer show | grep matchish/laravel-scout-elasticsearch --quiet}if package_installed; then  echo 'Package installed'else  composer require "matchish/laravel-scout-elasticsearch"fi
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

这里有两个误解:

  1. 你不能把东西通过管道传送到test.

  2. if some_command是命令成功时做某事的方式。[ no_package ]实际上并不运行命令,它只是检查字符串“no_package”是否不为空,因此总是成功。

除此之外,您可能希望使用该--quiet标志grep来避免打印包名称。


查看完整回答
反对 回复 2021-07-09
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我测试了该test命令,发现test无论我输入什么命令,该命令都返回相同的结果。


所以这样跑比较好


package_exist() {

    composer show | grep matchish/laravel-scout-elasticsearch >/dev/null

}


if package_exist; then

    echo 'installed'

else

    echo 'uninstalled'

    echo 'installing matchish/laravel-scout-elasticsearch'

    composer require "matchish/laravel-scout-elasticsearch"

fi


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信