gsamaras Asked: 2016-01-29 10:51:07 +0800 CST2016-01-29 10:51:07 +0800 CST 2016-01-29 10:51:07 +0800 CST 为什么要在执行脚本时使用 bash?[复制] 772 在前一个问题中,有人建议我执行: sudo bash start-dfs.sh 为什么不 sudo start-dfs.sh ? 我的意思是,有什么区别bash? bash 1 个回答 Voted Best Answer Jacob Vlijm 2016-01-29T11:06:33+08:002016-01-29T11:06:33+08:00 任何(解释)语言的脚本,如bashor python,都需要由相应语言的解释器“解释”。 在 Linux 上,这可以通过不同的方式完成: 通过在命令中包含语言来运行脚本,“要求”解释器运行脚本: <language> <script> 或在您的示例中: sudo bash start-dfs.sh 该脚本是可执行的,并且有权“要求”解释器本身运行脚本内的代码。从你的例子: sudo start-dfs.sh 在这种情况下,脚本必须以shebang开头,否则不知道要调用什么解释器,例如: #!/bin/bash 或者: #!/usr/bin/env python 笔记 如果使用第一个选项,命令中的语言信息总是会否决可能的 shebang,无论脚本是否可执行。 .sh脚本(等)上的扩展名.py清楚地表明它是什么类型的脚本,但在脚本的执行中没有任何作用,这与 windows 不同。
任何(解释)语言的脚本,如
bash
orpython
,都需要由相应语言的解释器“解释”。在 Linux 上,这可以通过不同的方式完成:
通过在命令中包含语言来运行脚本,“要求”解释器运行脚本:
或在您的示例中:
该脚本是可执行的,并且有权“要求”解释器本身运行脚本内的代码。从你的例子:
在这种情况下,脚本必须以shebang开头,否则不知道要调用什么解释器,例如:
或者:
笔记
.sh
脚本(等)上的扩展名.py
清楚地表明它是什么类型的脚本,但在脚本的执行中没有任何作用,这与 windows 不同。