介绍

每个 bash 脚本通常都以 shebang 开头Shebangshabang)在指定用于运行文件代码解释器时很有用。这篇文章关于了解 bash shell 之间区别,以及驾驭shebang 能力

什么shell

shell,通常称为命令提示符,是每个 Linux 发行版不可或缺的一部分。它是用户可以通过它与操作系统交互的最关键媒体之一。

Shell 既是一种命令行界面,也是一种脚本语言基于 Linux 操作系统使用它来控制和修改 shell 脚本形式的系统执行

/bin/sh

shshell命令语言)是由POSIX可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )标准描述编程语言sh有多种实现,如Bourne shellsh),dashKorn ShellK shell),Z shellash等。

shell 一个规范,它不是一个实现”。规范是对语言语法语义详细描述,而“实现“是带有解释器的实际语言。在许多系统上,/bin/sh 链接到特定于系统 Linux 发行版实现

下面的列表包括一些特定于 Linux 发行版默认实现示例

# Running on an OpenWRT System

$ file -h /bin/sh

/bin/sh: symbolic link to ash

/bin/bash

BashBourne Again Shell的缩写,是为GNU项目编写sh兼容实现,作为Bourne Shell的替代品。它可以被视为bourne  Shell的超集。Bash包括从Korn ShellC Shell中汲取的想法。

bash可用脚本编写,也可用交互式终端或解释器。你可以与此类似 python3 是一种脚本语言以及它如何成为解释器(当你在终端输入 python3 时,可以看到一个交互式解释器。交互模式下的 Bash 是终端或命令提示符。在 Ubuntu 中,默认脚本 shell dash交互式终端/shell 默认脚本 bash

 

注意,其他类型的 shell 并非支持所有功能。Bash 可以执行大量的 Bourne shell 脚本,但除了少数例外,但并非所有 bash 脚本都可以使用 Bourne shell 执行bash

POSIX中找不到的一些bash功能如下

bash vs shell:

Shell 脚本是指任何 sh 实现中的脚本,如 K shell、Z shell、bash 等。由于 bash 是 shell 最常见的实现,因此可以互换使用。牢记上述所有差异,需要注意的是,bash 和 shell 是不一样的。在某些情况下,一个可能优于另一个。下面的列表包括使用一个解释器相对于其他解释器的优势。

使用 /bin/bash 的优点

Bash和bourne shell之间的更多区别可以在GNU文档找到

使用 /bin/sh 的优点

关于Shebang!

Shebang 是大多数 shell 脚本的开头。它可以理解为告诉程序加载机制将正在执行当前文件路径(/path/to/file传递第一行shebang)中指定的解释器的路径的行。

例如,如果脚本的第一行位于 /home/test_user/test.sh 包含,则程序加载执行以下内容

#!/bin/bash

/bin/bash /home/test_user/test.sh

解释器 /bin/bash 忽略 test.sh 脚本中的 shebang,因为 hash是大多数脚本语言中的注释标记

 非常感谢你抽出宝贵的时间阅读我的文章,我真诚地感谢你对我的支持和鼓励。如果你有任何问题或想法,请在下面留言,我会很高兴和你交流讨论。希望对你有所帮助。再次感谢你,祝你生活愉快!

原文地址:https://blog.csdn.net/qq_61813593/article/details/130492989

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45564.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注