#!/usr/bin/env bash
是一个在 Unix 和 Unix-like 系统(如 Linux 和 macOS)中常见的 shebang(或称为 shebang 行、hashbang、pound bang 或 hash-bang)指令。
这个指令有以下几个部分:
-
#!
:这是一个特殊的标记,告诉系统该文件应该被当作一个脚本文件来执行,并且后面的路径是解释这个脚本的程序的路径。 -
/usr/bin/env
:这是一个常见的 Unix 命令,用于在系统的 PATH 环境变量中查找并运行指定的程序。使用env
可以确保脚本在任何用户的 PATH 环境中都能找到并运行指定的解释器,而不仅仅是默认的或硬编码的路径。 -
bash
:这是 Bash shell 的名字,也是这个脚本应该被哪个解释器(或称为 shell)来执行。
将这个指令放在脚本文件的第一行,意味着当您尝试执行这个脚本时(例如使用 ./scriptname.sh
),系统会使用 /usr/bin/env
命令来查找 bash
并用其来执行这个脚本。
这种写法的一个主要优点是,如果您的系统上 Bash 的安装位置不是 /bin/bash
或 /usr/bin/bash
,或者您的 PATH 环境变量中包含了另一个 Bash 的安装位置,那么这个脚本仍然可以正确地找到并执行 Bash。这使得脚本更加灵活和可移植。