使用“env [shell]”作为解释器的目的是什么?

使用“env [shell]”作为解释器的目的是什么?

我已经被绊倒过#!/usr/bin/env bash很多次了,但从来没有质疑过。现在,我想知道将 shell 解释器包装在命令中的目的是什么env,即为什么不直接 write#!/bin/bash#!/bin/sh其他什么?

答案1

我认为这是因为Python而流行的。

有了这个你可以做

#!/usr/bin/env python3

例如,并且非常确定env会找到可执行文件的正确版本和位置。

然后这会迁移到其他 shell,因为即使您知道特定 shell 在哪里,这似乎也是一个始终这样做的好习惯。

相关内容