介绍shell的来龙去脉给你看
一、什么是shell?
先理解几个概念:
1. shell(贝壳,外壳):shell是一个用c语言编写的程序,通过shell,用户可以访问linux系统内核服务,它类似dos下的command和我们熟知windows中的cmd.exe(秒懂有木有~)
2. shell既是一种命令语言又是一种程序设计语言,但是shell script是一种shell编写的脚本程序不是指shell本身。(也就是说我们常说的shell是shell脚本,并不是shell软件本身)
3. linux的shell种类很多一个系统可以存在多个shell(多个操作内核的shell软件),可以通过cat /etc/shells命令来查看系统安装的shell。Bash由于易用和免费,被广泛使用,linux系统默认的shell就是Bash
二、shell的作用:shell软件把shell命令转换成内核认识的命令,交给linux内核处理。
三、运行shell脚本的命令的几种思路:
前提:文件为a.sh
1 ./a.sh会用你脚本中第一行的那个#!XXX的shell来执行语句 ,如果XXX是bash那么就是用bash运行这段脚本
2 sh a.sh则是用sh来执行语句,可以不写#!XXX的shell来执行语句 ,使用默认的bash去执行这段脚本
3 还有一种可能就是./a.sh确定了文件路径,而sh a.sh一定要在a.sh所在目录
四、环境变量\环境变量:
局部变量(相当于java中的局部变量):只在当前shell实例(当前脚本)中有效
环境变量(相当于java中的成员变量):用export修饰,可用set命令查看当前环境变量
总结:
1 、export的变量,会被进程继承下去,子进程修改该变量,父进程不受影响(在java中也一样,只不过不是export修饰)
2、export所在进程结束,该变量就消失(子类的变量)
3、我们在窗口中(不是脚本文件中)定义环境变量,在脚本文件中也可打印,说明这个窗口就是shell的实例!!!,这个实例下面的脚本都是他的子shell
4、用source执行脚本文件后就相当于在本shell实例中定义了环境变量
五、shell参数传递://todo
六、函数使用:
原文链接:https://blog.csdn.net/smartshylyboy/article/details/82118756