建议将其作为 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
。
参考:类似的问题