shebang #!
#! /bin/sh
传统的#! /bin/sh
或者#! /bin/bash
用来指定解释器
可以使用#!/usr/bin/env bash
的改进版。
这样做的好处是,系统会自动在PATH环境变量中查找你指定的程序(本例中的bash)。相比第一种写法,你应该尽量用这种写法,因为程序的路径是不确定的。这样写还有一个好处,操作系统的PATH变量有可能被配置为指向程序的另一个版本。比如,安装完新版本的bash,我们可能将其路径添加到PATH中,来“隐藏”老版本。如果直接用#!/bin/bash,那么系统会选择老版本的bash来执行脚本,如果用#!/usr/bin/env bash,则会使用新版本。