从 /usr/bin/env 或 /bin 启动 bash

从 /usr/bin/env 或 /bin 启动 bash

建议将其作为 Bash 脚本的第一行:

#! /usr/bin/env bash

或者

#! /bin/bash

答案1

一般来说,使用更便于携带。虽然不太可能,但理论上可以找到没有at 的env系统。运行脚本的用户也可能有自己的 bash 版本,并且版本有所不同。bash/bin/bash

使用env意味着bash将选择用户路径中的第一个实例。这意味着#!/usr/bin/env bash将始终与用户选择的 bash 版本配合使用,并且bash即使在非标准系统中也应始终求值为可用。如果您使用的是其他解释器而不是 bash,这一点就变得更加重要。例如,Perl 可以安装在不同系统上的不同位置,但env无论如何都会找到它。

因此,使用#!/usr/bin/env PROGRAM是一个很好的习惯,因为它可以使您的脚本更易于移植到不同的 *nix 版本。

答案2

如果您安装了多个版本的 bash(可能),使用#!/usr/bin/env bash将确保使用的 bash 是您环境中的第一个$PATH

使用#!/bin/bash将对存储在的二进制文件进行硬编码#!/bin

参考:类似的问题

相关内容