Edg*_*nga 4 unix script shell-script macos
在许多 Apple/Unix 脚本中,我看到前面有“#”的东西,据我所知,这意味着它是一个注释。但是你经常看到如下的 shell 调用(带有 的行#!)。
## Setting a default route
#!/bin/sh
/sbin/route add SUBNET $5
Run Code Online (Sandbox Code Playgroud)
我想知道这是否也只是一个评论,或者它确实做了一些事情。感谢您的专家的建议:-)
Pyl*_*lsa 16
这是一种定义在脚本执行期间应该调用哪个 shell 的方法。它被称为舍邦。
例如,具有以下 Shebang 行的文件:
#!/bin/sh
Run Code Online (Sandbox Code Playgroud)
将调用 Bourne (sh) shell。例如,你的一段脚本:
## Setting a default route
#!/bin/sh
/sbin/route add SUBNET $5
Run Code Online (Sandbox Code Playgroud)
将/sbin/route add SUBNET $5在 Bourne shell 解释器中运行。/sbin/route add SUBNET $5只是一个评论,并没有做任何事情。但是,shebang 应该在第一行,因此顶部的注释将不允许 shebang 执行其工作,使其成为无用的添加。
有许多被广泛使用的口译员,一些典型的 shebang 行口译员是:
#!/bin/sh — 使用 sh、Bourne shell(或兼容的 shell)执行#!/bin/csh — 使用 csh、C shell(或兼容的 shell)执行#!/usr/bin/perl — 使用 Perl 执行#!/usr/bin/python — 使用 Python 执行#!/usr/bin/php — 使用 PHP 的命令行解释器执行正如 Olli 在他的评论中提到的,有时env(环境的缩写)用于确保选择正确的解释器路径。
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |