当前位置: 首页 > 面试题库 >

为什么需要在脚本文件的开头放置#!/ bin / bash?

胡越泽
2023-03-14
问题内容

我之前已经制作过Bash脚本,它们运行良好,没有#!/bin/bash开始的情况。

放入它有什么意义?事情会有所不同吗?

另外,您如何发音#?我知道这!发音为“砰”。

怎么#!发音?


问题答案:

这是一个约定,因此* nix shell知道要运行哪种解释器。

例如,ATT的较旧版本默认为 sh (Bourne shell),而BSD的较旧版本默认为 csh (C shell)。

即使在今天(大多数系统都运行bash,即 “ Bourne Again Shell”
),脚本仍可以使用bash,python,perl,ruby,PHP等。例如,您可能会看到#!/bin/perl#!/bin/perl5

PS:感叹号(!)亲切地称为 “ bang” 。shell注释符号(#)有时称为 “ hash”

PPS:请记住-在* nix下,将后缀与文件类型相关联只是一种 约定 ,而不是 “规则” 。一个 可执行文件
可以是一个二进制程序,一百万脚本类型和其他的东西,以及任何一个。因此需要#!/bin/bash



 类似资料:
  • 问题内容: 我在这里阅读了一些有关每个java .class 文件开头的幻数的文章,并想知道 为什么 需要它- 此标记的目的是什么? 还需要吗?还是现在只是为了向后兼容? 找不到可以回答这个问题的帖子-我也没有在Java 规范中看到答案 问题答案: 幻数基本上是文件格式的标识符。例如,JPEG总是以FFD8开头。Java本身并不需要,它仅有助于识别文件类型。您可以在这里阅读更多有关幻数的信息。

  • 我将把我的Android项目从Ant转换为Gradle。 我的Eclipse工作区非常简单: 当我添加构建时。MyApp中的gradle文件,我想引用我的Android库项目: 当我运行gradle build时,出现了一个错误“Project with path”:在根项目中找不到MyApp AndroidLibrary“,我在Google上搜索了一下,发现我需要在我的工作区目录中设置一个“se

  • 问题内容: 为什么在使用Ajax控件时总是需要脚本管理器? 问题答案: 脚本管理器控件是将脚本发送到客户端的控件。此控件是所有AJAX相关功能的核心。它管理启用Ajax的页面中的所有控件。它还可以确保按预期进行部分页面更新。 http://msdn.microsoft.com/zh- CN/library/system.web.ui.scriptmanager.aspx

  • 我正在查看的源代码,在api文件夹中有一个文件,内容如下: 我听说这个文件是打字稿类型定义。这是什么?为什么需要它?

  • 问题内容: 在我看来,没有该行,文件运行相同。 问题答案: 如果你安装了多个版本的Python,请确保使用的解释器是环境中的第一个解释器。另一种方法是对类似的东西进行硬编码可以,但是不太灵活。 在Unix中,要解释的可执行文件可以通过#!在第一行的开头加上,然后是解释器(及其可能需要的任何标志)来指示要使用的解释器。 当然,如果你在谈论其他平台,这个规则是不适用的(但是“shebang行”没有坏处

  • 在我的Java项目中,我使用Lombok工具生成getter和setter<它与Maven完美配合,无需任何配置。 为什么我需要为龙目岛配置Eclipse<我已经知道如何配置Eclipse:https://projectlombok.org/download.html 为什么我必须在我的eclipse.ini中添加以下行?