1.什么是Shell? 2.什么是Shell脚本? 3.怎么写好一个规范标准的Shell脚本? 4.怎么执行shell? 5.shell脚本的执行过程?
1.什么是Shell?
首先请看图————自动略过各位都是新手(CaiJi)
聪明的你如图所得:
Shell=命令解释器 它的作用是执行并解释用户输入的命令及脚本,用户键入一条命令,Shell就执行并解释一条。 键入命令,就可以立即得到回应的对话方式,被称之为为交互式。 Shell它存在于操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户,当我们输入系统用户名和密码,登录到Linux后的所有操作都是由 Shell解释并执行的。
所以这就是Shell~
伽马<—————————————————————————————————————————>射线
2.接下来我们谈什么是Shell脚本? ———————————你猜呗———————————
既然上文谈了Shell,想必各位也一知半解了。
当命令或脚本语句不在命令行下执行,而是通过一个程序文件(.sh)执行时,这种东西就被称为Shell脚本。
当你在Shell脚本里键入了n条命令、语句及循环等等,然后一次性把这些命令执行完(前提没有错误),这种通过文件执行脚本的方式,称为非交互的方式。Shell脚本类似于Windows系统下的批处理文件。用户可以在Shell脚本中敲入一系列的命令及语句语法组合。
这些命令、变量和流程控制语句等结合起来就形成了一个功能强大(相对于其他语言还是弱鸡)的Shell脚本。
伽马<——————————————————————————————————————————>射线
3.怎么写好一个规范标准的Shell脚本?
想写一个规范标准完美的shell?还差的远呢~
tips:在脚本的第一行,指出由哪个解释器执行,来人,上例子:
#!/bin/bash
#!/bin/sh
其实你不指定还是会默认使用bash执行的,只是领导说要规范,系统就这么做了。(养成良好习惯)
默认sh就是bash,(早期会稍有不同)因为sh是bash的软连接,在CentOS里,不信?上图为证:
tips:
命令最前方加上#号,代表注释,注释就是跳过此行,作用于描述
描述该脚本的作用,记得加上#号,可多行注释,自行百度。
加上version信息,以及”著作人“
脚本统1路径目录
脚本中不用中文
成对的符号儿和循环格式一次性写完避免忘记,高亮颜色会提醒你
逻辑性强,干净,代码命令少,最简化,多用函授、变量等
*具体参考《代码整洁之道》(仅仅写个shell脚本就不用这么麻烦了) 伽马<——————————————————————————————————————————>射线 4.怎么执行shell?
tips: sh script_Name.sh 或 bash script_Name.sh 用sh 或 bash直接运行
/path/script_Name.sh 或 . /scrpt_Name.sh 输入路径加脚本名执行 或 点 /路径/脚本(前提:有执行权限)
source script_Name.sh 或 . script_Name.sh source命令直接运行脚本 或 点 脚本
伽马<——————————————————————————————————————————>射线
5.shell脚本的执行过程? 来人,上图!
简单的说就是从上至下,一行一行执行,中途有子shell需等待,可以加入后台 用&符 tops:注意子shell里面的变量不能用于父shell,父shell的变量能用于子shell,所以按需设置。
你get到了吗?