shell脚本交流讨论

问题1shell和操作系统之间什么关系?

答:shell是我们和操作系统交流的接口。当我们没有鼠标,没有图像界面。又想去操作操作系统的时候,我们就可以用shell去和操作系统去交流。它本质上是一个应用程序,这个应用程序能接收键盘的输入,并且把操作系统的运行结果通过显示器返回给我们。


这个是shell在操作系统中的位置所在。

问题2:shell既然是一个程序,那么shell脚本又是怎么回事?

答:shell虽然是一个程序,但是这个程序是一个解释器程序。它能解释已.sh为结尾的文件。把内容翻译成对应的命令发给操作系统。

问题3:shell脚本和cd,ls 命令什么关系?为什么shell脚本中可以包含这些命令?

答:我们之前已经说过了shell其实是一个解释器程序,而这个解释器程序提供了一些内置命令,我们可以拿过来直接用,还有就是一下外部程序命令(装系统时候就带的,或后来安装的)。shell解释器程序都可以读取识别,并且告诉操作系统去执行,区别就是内置命令是随shell开机启动之后一直存在的,外部命令需要操作系统从硬盘中帮助去调入到内存中。

问题4:命令的执行流程介绍?

答:其实操作系统开机运行之后,就已经运行了一个对应shell程序,当我们从键盘输入之后,shell程序会读取一串字符串并判断是否内建命令,如果是直接调用内存数据执行,如果不是传递操作系统,操作系统会先fork复制一个shell进程,然后找到对应的程序看是否是二进制程序,如果是用新程序取代shell程序运行。如果不是那么shell进程会读取翻译这个文件(这个文件一般为shell脚本文件或python脚本文件)。

问题5:什么是环境变量?

答:环境变量一般指操作系统运行时候需要用到的一些环境参数,而操作系统的运行单位是进程,所以正在运行的进程都有自己的环境变量。而进程的环境变量一般从父类继承来的,最开始的进程是从某一个配置文件中读取的。例如linux中/etc/profile,我们也可以在运行中的进程动态的添加环境变量,这样后续的子进程就可以直接用环境变量了。当进程结束后,动态添加的环境变量也就失去作用效果了。动态添加的方法就是用关键字export。如果需要永久在所有进程中启作用还是需要在一个操作系统制定的配置文件中。

问题6:能介绍一下shell中变量么?当涉及一个脚本调用另一个脚本的时候。变量总是用不好。

答:对于这里我想让您分两方面去理解。

第1方面:就是shell中的变量就是一串字符串,shell中一切皆字符。然后这个字符串中的内部结构是标识名称=值。

第2方面:shell脚本中变量分为3类:

第1类:局部变量:作用域是函数内。用local声明。

            第2类:全局变量:作用域为当前shell进程。跨shell进程不能访问,用source引入当前进程能够使用。

            第3类:环境变量:作用域父子进程。这个上个问题已经详细回答了。

问题7:shell脚本具体由那几部分组成,我们应该如何去学习?

答:上面该回答的内容已经介绍的差不多了。对于shell语言来说,只包含变量,函数,流程控制语句几部分,加上shell的内部命令。我们就可以编写能够实现各种功能的脚本文件了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 10,025评论 0 5
  • 第一章 1.Linux是一套免费使用和自由传播的类UNIX操作系统,它可以基于Intel x86系列处理器以及Cy...
    yansicing阅读 10,819评论 0 9
  • 一,shell题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工...
    架构师小秘圈阅读 12,780评论 3 70
  • Linux 环境变量能提升 shell 使用体验很多程序和脚本都通过环境变量获取系统信息、存储临时数据和配置信息 ...
    asing1elife阅读 4,734评论 0 2
  • 最近项目需求多,经常这个时候下班,程序员的工作性质就是这样,没办法。 基金课程更新频率,从一开始的理想状态,一周三...
    大飞在线阅读 1,193评论 0 1

友情链接更多精彩内容