为什么要在执行脚本中使用bash?

萨马拉斯

在以前的问题中,建议我执行以下命令:

sudo bash start-dfs.sh

为什么不

sudo start-dfs.sh

我的意思是,有什么区别bash

雅各布·弗利姆(Jacob Vlijm)

任何(已解释)语言的脚本(例如bashpython)都需要由相应语言的解释器“解释”。

在Linux上,这可以通过不同的方式完成:

  1. 通过在运行脚本的命令中包含语言,可以“要求”解释器运行脚本:

    <language> <script>
    

    或在您的示例中:

    sudo bash start-dfs.sh
    
  2. 该脚本是可执行的,并且具有“询问”解释器本身的权限以在脚本中运行代码。从您的示例:

    sudo start-dfs.sh
    

    在这种情况下,脚本必须shebang开头,否则就没有信息要调用的解释器,例如:

    #!/bin/bash
    

    或者:

    #!/usr/bin/env python
    

笔记

  • 如果使用第一个选项,则无论脚本是否可执行,命令中的语言信息始终会否决可能的shebang。
  • 脚本的扩展名(.sh.py等)清楚说明了脚本的类型,但与Windows不同,脚本的执行在脚本执行没有任何作用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章