在一些脚本开头,通常指定脚本的解释程序。通常我们看到的是:
#! /bin/sh
# 或
#! /bin/bash
但是还有一些:
#! /usr/bin/env ruby
#! /usr/bin/env perl
#! /usr/bin/env python
那 env
到底是干啥的呢?
脚本用 env
启动的原因,是因为脚本解释器在 linux 中可能被安装于不同的目录,env
可以在系统的 PATH
目录中查找。
也就是 /usr/bin/env ruby
他会自动在 PATH
目录中找到对应的 ruby
环境。可以看到,它的灵活性更好,拓展性更好,因为在其他人的电脑中,我们不知道他的环境目录和我的是否一样,通过 env
来达到自动寻找环境的功能。