Scripts(脚本语言)、Shell、Sh、Bash之间的关系

您所在的位置:网站首页 bash和sh执行脚本的区别 Scripts(脚本语言)、Shell、Sh、Bash之间的关系

Scripts(脚本语言)、Shell、Sh、Bash之间的关系

2023-03-14 00:39| 来源: 网络整理| 查看: 265

Scripts(脚本语言)、Shell、Sh、Bash之间的关系Scripts

脚本(Script),是一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言与编译语言不同,用脚本语言写出的脚本文件可以直接作为可执行文件运行,无需像C或C++语言那样先编译再运行。

脚本执行时,计算机会执行一连串的操作,脚本文件将不同的命令组合起来,并按照确定的顺序自动连续地执行。脚本文件是文本文件,可以使用任一文本编辑器来创建编辑脚本文件。

脚本语言比较接近自然语言,可以不经过编译而是解释执行(不生成目标程序,而是一句一句的解析后提交给计算机执行,解析需要时间,因此执行效率很低),利于快速开发或一些轻量的控制。

一般脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。

常见的脚本语言包括python、JavaScript、PHP、SQL、Shell等。如下图:

Shell

平常我们提到shell时,一般指的是shell脚本(即shell scripts),如上图所示;但shell本身指的却是命令解释器,更具体的来讲,shell就是一个用C语言编写的程序,这个程序提供了一个界面,用户可以通过这个界面访问操作系统内核的服务。就像shell的字面意思那样,shell——壳,它是一个壳,一个能让用户与操作系统内核沟通的壳,一个保护操作系统内核不被用户直接调用的保护壳。如下图:

那么我们经常说的shell脚本,其实就是利用shell的功能,编写的能够直接运行的脚本文件。

Sh、Bash

以上可知shell是提供与内核沟通接口的命令解释器程序,但实际上shell是这种解释器的统称,Linux系统的shell种类很多,包括Bourne shell(简称sh)、Bourne Again shell(简称bash)、C shell(简称csh)、K shell(简称ksh)、Shell for Root等等。如下图:

也就是说sh和bash都是Linux系统shell的一种,其中bash命令是sh命令的超集,大多数sh脚本都可以在bash下运行。Linux系统中预设默认使用的就是bash。

各种shell使用路径:

Bourne Shell (/usr/bin 或 /bin/sh)

Bourne Again Shell (/bin/bash)

C Shell (/usr/bin/csh)

K Shell (/usr/bin/ksh)

Shell for Root (/sbin/sh)

......

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh**,它同样也可以改为 #!/bin/bash。

#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3