/usr/bin/env如何在Linux shebang系列中运行?

我知道shebang这样的:

#!/bin/sh

但我发现我也可以像这样使用shebang线:

#!/usr/bin/env python3

这让我感到困惑,有人可以向我解释一下Linux将如何处理这个问题?

解决方法

env是Unix程序的名称.如果您阅读手册(man env),您可以看到使用它的一种方法是env COMMAND,在您的情况下,COMMAND是python3.

根据手册,这将

Set each NAME to VALUE in the environment and run COMMAND.

单独运行env将显示设置的NAME和VALUE:

$env
TERM=xterm-256color
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
…

因此,/usr/bin/env python3一个设置PATH(以及所有其他NAME VALUE对)的指令,然后使用PATH中包含python3可执行文件的第一个目录运行python3.

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...