Bash/Shell/Shell脚本的关系_bash脚本和shell脚本的区别-程序员宅基地

技术标签: linux  

Bash/Shell/Shell脚本的关系

1.Shell是什么

  • Shell俗称壳,是指“为使用者提供操作界面”的软件(命令解析器)。Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序。(用户<—>Shell<—>内核)
  • Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

2.Shell分类

常见的 Shell 有 sh、bash、csh、tcsh、ash 等。
其中bash shell 是 Linux 的默认 shell。
即BASH是shell的一种。

3.Shell脚本

  • Shell既是一种命令语言,又是一种程序设计语言(就是所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
  • 在系统的终端中输入一条命令,可以立马看到一条或者几条系统回复的信息,其实就是shell在帮我们回复,所以shell可以称之为命令解释器。这种从键盘一输入命令,就可以立马得到相应的回复信息,叫作交互的方式
    如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就被称之为shell脚本。Shell脚本里面通常内置了多条命令,有的还包含控制语句,比如if和else的条件控制语句,for和select的循环控制语句等。这些内置在一个shell脚本中的命令通常是一次性执行完成,不会不停的返回信息给用户,这种通过文件执行脚本的方式称之为非交互方式。

4.脚本语言和高级语言的比较

  • 解释型语言是相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。 解释型语言:程序不需要编译,省了道工序,程序在运行时才翻译成机器语言,但每执行一次都要翻译一次。因此效率比较低。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨平台性好.)
  • 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(比如exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43217963/article/details/100555330

智能推荐

Unity3D控制物体前后左右移动、旋转及相机跟随_unity让物体左旋转a-程序员宅基地

文章浏览阅读2.6w次,点赞3次,收藏33次。Input.GetKey 获取键,当按键北被用户按住时返回true。下面代码实现:按下"W" 控制物体向前;按下"A"控制物体像左;按下"S"控制物体向后;按下"D"控制物体向右;按下"Q"控制物体向左旋转;按下”E"控制物体向右旋转; 把脚本拖给一个物体,再给相机一个SmoothFollow脚本。就可以运行看效果了。注意:如果你的工程文件中没有_unity让物体左旋转a

银河麒麟V10操作系统之root密码重置_银河麒麟root默认密码-程序员宅基地

文章浏览阅读3w次,点赞16次,收藏96次。从kingbase工程师那拷贝了一个已经安装了kingbase数据库环境的虚拟机,只有一个kingbase普通账户,root密码位置,且该账户未加入到sudo组中,无法执行新软件等的安装和部署。为了满足需要,我们需要重置root密码。_银河麒麟root默认密码

Opencv3安装踩坑(SLAM十四讲)_/usr/include/opencv-程序员宅基地

文章浏览阅读5.5k次,点赞3次,收藏57次。因为之前玩ros,使用了sudo apt-get install libopencv-dev 安装了opencv2,而slam十四讲的opencv版本为3。因此需要重新安装opencv3(在与opencv2共存的条件下)首先检查已有的opencv版本:pkg-config opencv --modversion如果是2版本,则需要安装3版本1. 安装过程1.安装依赖(如果有依赖则不必..._/usr/include/opencv

【Spring6】| Bean的生命周期(五步、七步、十步法剖析)-程序员宅基地

文章浏览阅读8.4k次,点赞34次,收藏148次。【Spring6】| Bean的生命周期(五步、七步、十步法剖析)_bean的生命周期

Appium(六)Toast 定位 + Android版本问题的解决以及 Selenium 的安装+屏幕截图_you could still use other supported backends in or-程序员宅基地

文章浏览阅读2.8k次。页面的错误提示 Toast,比如:网络加载问题出现的错误、用户名或者密码输入错误、银行卡密码输入次数提示等错误,这些错误的内容一般都会以浮动的方式显示,而且他们显示的时间非常的有限,可能是几秒钟的时间就会消失掉,不会被点击,无法获取到他们的焦点,但是在 Android 中有一个叫做 Appium Toast 的工具,在 Android 1.6.x 多的时候就已经开始支持识别 Toas..._you could still use other supported backends in order to automate older andr

关于idea将模块修改为Resources报错:Two modules in a project cannot share the same content root.-程序员宅基地

文章浏览阅读1.8k次。点击: file-->Project Structure-->选择:Models----> 右击文件点击Delete最后修改即可_two modules in a project cannot share the same content root

随便推点

佩服!这个程序员用Raspberry Pi搭了一个计算机实验室!-程序员宅基地

文章浏览阅读150次。Raspberry Pi是一款迷你电脑,主要针对的人群是非技术的其他电脑使用人群,由于其低廉的价格,在教育领域非常受欢迎。虽然程序员很少使用这款电脑,但Raspberry Pi的功能十分强悍。据国外媒体报道,一家位于英国剑桥的咨询公司PA Consulting成功利用开源硬件Raspberry Pi个人电脑以及配套软件模拟移动信号基站,并实现了所有移动信号基站的功能。近日,Raspberry Pi..._学校计算机上的raspberry pi教育手册

MatconvNet:尝试将 SCRIPT vl_nnconv 作为函数执行_尝试将 script vl_nnconv 作为函数执行:-程序员宅基地

文章浏览阅读5k次,点赞7次,收藏7次。运行matconvnet遇到下面问题:尝试将 SCRIPT vl_nnconv 作为函数执行:L:\Fine-tuning-CNN\matlab\cnnimageretrieval\matlab\vl_nnconv.m出错 dagnn.Conv/forward (line 11)outputs{1} = vl_nnconv(...出错 dagnn.Layer/forwardAdvanced (line 85)outputs = obj.forward(inputs, {net.params(_尝试将 script vl_nnconv 作为函数执行:

Thymeleaf怎么显示request中绑定的数据?_thyme 显示request的值-程序员宅基地

文章浏览阅读1.1k次。Thymeleaf怎么显示request中绑定的数据?后端代码:@Controllerpublic class test { @RequestMapping({"/test"}) public String test(HttpServletRequest httpServletRequest){ //使用setAttribute存入数据 httpServletRequest.setAttribute("zhang" , "zhangjiahong"); _thyme 显示request的值

VSCode之Markdown自动生成目录#TOC#解决目录不整齐问题_vscode markdown 表格显示不全-程序员宅基地

文章浏览阅读3.1k次,点赞8次,收藏3次。一 、下载插件(1)在扩展里,搜索“Markdown”,在列表里选择Markdown的插件。(2)例如“Markdown TOC”,这是一个专门生产目录的插件。点击安装二、生成目录在你想添加目录的地方右击选择“Markdown TOC:Insert/Update”三、可能出现的问题及解决VSCode中Markdown目录显示异常TOC标签格式异常出现如下auto的文字原因:默..._vscode markdown 表格显示不全

MediaServerStudioEssentials2017R2版本安装_media server studio community 2017-程序员宅基地

文章浏览阅读1.1k次。安装依赖sudo apt-get install -y preload libpciaccess-dev libpthread-stubs0-devsudo apt-get install -y compizconfig-settings-managersudo apt-get install -y subversion git git-svn gcc g++ make cmake nasms_media server studio community 2017

第9讲:使用ajax技术实现增删改查及分页显示功能(jQuery)_ajax实现修改功能-程序员宅基地

文章浏览阅读1.2k次。本讲内容首先讲解jQuery对ajax的支持,分别讲解$.post,$.get,$.ajax等方法,这些方法的参数,使用方法及区别。最后对ajax的综合应用举例:在同一个页面实现新增,修改,删除学校资料,分页列表等功能,前端使用html静态页面,使用MySQL数据库,后台使用servlet技术实现。_ajax实现修改功能

推荐文章

热门文章

相关标签