shell脚本开头#!/usr/bin/env bash,#!/usr/bin/bash,#!/bin/bash的比较
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本开头#!/usr/bin/env bash,#!/usr/bin/bash,#!/bin/bash的比较相关的知识,希望对你有一定的参考价值。
辨析
#!/usr/bin/env bash
:在不同的系统上提供了一些灵活性
通过#!/usr/bin/env bash
运行程序,用户不需要去寻找程序在系统中的位置(因为在不同的系统,命令或程序存放的位置可能不同),只要程序在你的$PATH中;
通过#!/usr/bin/env bash
运行程序另一个好处是,它会根据你的环境寻找并运行默认的版本,提供灵活性。
不好的地方是,有可能在一个多用户的系统中,别人在你的$PATH中放置了一个bash,可能出现错误。
-
#!/usr/bin/bash
:在linux上不一定都有,对给定的可执行文件指定bash位置 -
#!/bin/bash
:在linux上一定存在,对给定的可执行文件指定bash位置
到底选哪个?
#!/usr/bin/env bash
是大部分情况下的第一选择,因为它提供了灵活性,特别是你想在不同的bash版本下运行shell脚本。
#!/usr/bin/bash
指定了bash的具体位置,在某些情况下更安全,因为它限制了代码注入的可能。
在一些系统上可能没有#!/usr/bin/bash
,而#!/bin/bash
则一定存在。所以#!/bin/bash
是指定bash具体位置的优先选择。
以上是关于shell脚本开头#!/usr/bin/env bash,#!/usr/bin/bash,#!/bin/bash的比较的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 执行Python脚本出现: /usr/bin/env: ‘python ’: No such file or directory
PyCharm中脚本模板 #!/usr/bin/env python与#!/usr/bin/python
#!/usr/bin/env python与#!/usr/bin/python的区别
Python头部2行 #!/usr/bin/python 和 #!/usr/bin/env 的区别 以及编码方式的指定 2018-10-23