当前位置:  开发笔记 > 编程语言 > 正文

bash脚本中#!/ bin/false的用途

如何解决《bash脚本中#!/bin/false的用途》经验,为你挑选了0个好方法。

在我的前同事处理用bash编写的项目时,我注意到所有.sh文件都只包含函数定义#!/bin/false,据我所知,这是一种防止执行仅包含文件的安全机制.

例:

my_foo.sh

#!/bin/false
function foo(){
    echo foontastic
}

my_script.sh

#!/bin/bash

./my_foo.sh # does nothing
foo # error, no command named "foo"

. ./my_foo.sh 
foo # prints "foontastic"

但是,当我不使用时#!/bin/false,正确和不正确使用的效果完全相同:

例:

my_bar.sh

function bar(){
   echo barvelous
}

my_script.sh

 #!/bin/bash

./my_bar.sh # spawn a subshell, defines bar and exit, effectively doing nothing
bar # error, no command named "bar"

. ./my_bar.sh
bar # prints "barvelous"

由于source在两种情况下正确使用这些脚本都可以按预期工作,并且在两种情况下执行它们都不会从父shell的角度执行任何操作并且不会生成有关无效使用的错误消息#!/bash/false,这些脚本的目的究竟是什么?

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有