bash – 以root身份查找composer全局安装路径

我在脚本中使用PHP composer全局安装了一些PHP

sudo -u me composer global require "PHPmd/PHPmd"

我想找到这些全局安装的PHP包的路径.当我以用户身份运行哪个PHPmd时,我得到了完整的路径.

/home/me/.composer/vendor/bin/PHPcs

但是,当我尝试以sudo运行命令时,我什么都没得到.我认为这是因为composer已被全局添加并且在我的用户mes PATH中,而它在sudo的PATH中不存在.

相反,我试过了

 path="$(sudo -u me which PHPcs)"

但这也失败了.但是,对于未通过composer安装的任何程序,它都会成功.如何通过composer作为sudo找到全局安装的PHP包?

我的道路

/home/me/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

sudo(su’s)的道路

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

解决方法:

正如您在路径差异中所注意到的那样,问题在于我的路径包括/home/me/.composer/vendor/bin. Sudo不会继承用户的环境.

您需要手动导入它.目前还不清楚为什么你希望root在其路径中查看特定用户文件.

查找文件,可以使用find命令,例如find / home -name FileName.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...