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

标签 linux bash scripting shebang

我做了Bash之前的脚本,并且在开头没有 #!/bin/bash 的情况下它们都运行良好。

把它放进去有什么意义?会有什么不同吗?

另外,# 怎么发音?我知道 ! 发音为“bang”。

#!怎么读?

最佳答案

这是一个约定,因此 *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.

关于linux - 为什么需要将#!/bin/bash 放在脚本文件的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8967902/

相关文章:

Linux 新手 : Linux vs POSIX manual

linux - 如何传递一个具有多个参数的变量来同时运行?

c - 在 C 中生成跨多个文件的现有函数列表

Linux:tail -f 多个选项

c - 将正在运行的程序的输出通过管道传输到 xargs

bash - 从 LDAP 将用户添加到 linux box

linux - 如何按倒数第二个字段对具有可变数量字段的输入进行排序?

python - ctypes自己的库加载但无法访问函数/方法

mysql - 优秀的开源 MariaDB 前端

linux - 什么时候使用 .fini_array 部分?