$BASH_VERSION 对比 /usr/bin/env

$BASH_VERSION vs /usr/bin/env

我运行检查环境:

env | grep bash  

然后一无所获

因此,我认为变量 bash 未在 env 中设置。但是,在 shell 脚本文件中:

#!/usr/bin/env bash

echo $BASH_VERSION

我得到了5.1.16(1)-release

好像有点矛盾,一方面我觉得变量bash一定是设置好了,因为shell脚本文件可以按照预期的方式执行;另一方面,运行宁env | grep bash,我一无所获。

OS 如何在没有设置 env 变量的情况下找到应用程序 bash-5.1.16?

$BASH_VERSION 不是环境变量,而是 shell 变量。
您可以使用内置的 declare 查看已定义的 shell 变量。

declare | grep BASH_VERSION

BASH_VERSION='5.1.4(1)-release'

env程序用于运行修改环境的程序。
运行 /usr/bin/env bash 没有参数与 运行ning bash 基本相同,它确保程序在文件系统上而不是 shell 内置。