在linux的一些脚本,需在开头一行指定脚本的解释程序,如:

#!/usr/bin/env bash

#!/usr/bin/bash

#!/usr/bin/env python  告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;

#!/usr/bin/python  告诉操作系统到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作

两种形式的区别是什么?

脚本用env启动的原因,是因为脚本解释器在linux中可能被安装于不同的目录,env可以在系统的PATH目录中查找。同时,env还规定一些系统环境量。 而如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题。

还可以加上-P参数来指定一些目录去寻找perl这个程序, #!/usr/bin/env -S -P /usr/local/bin:/usr/bin:${PATH} perl --->在/usr/local/bin和/usr/bin和PATH变量中定义的目录下寻找perl。

相关文章:

  • 2022-12-23
  • 2021-08-21
  • 2021-07-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
相关资源
相似解决方案