为什么“which”和直接访问可执行文件会出现版本结果不一致的情况?

为什么“which”和直接访问可执行文件会出现版本结果不一致的情况?

我正在使用 MacOS High Sierra,并且尝试查找 PHP 的版本问题。我遇到了一个非常奇怪的情况。如果我php --version,它会报告 7.4.2。然后我通过 验证 php 被调用的位置which php,然后php --version直接调用,它会报告 7.1.33。这些报告的版本不同吗?发生了什么?

php --version

PHP 7.4.2 (cli) (built: Feb 17 2020 12:56:02) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

which php

/usr/bin/php

/usr/bin/php --version

PHP 7.1.33 (cli) (built: Jan 26 2020 22:52:32) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

答案1

我可以告诉你,从你的alias输出来看,它将你指向了不同版本的 php。

alias php='/Applications/MAMP/bin/php/php7.4.2/bin/php -c "/Library/Application Support/appsolute/MAMP PRO/conf/php7.4.2.ini'

which将使用PATH环境变量来搜索文件,而alias如果已配置,则会使用它。

要解决这个问题,您需要使用完整路径来php使用中的一个/usr/bin或更改您的alias,这可能会破坏其他东西。

相关内容