您的位置:首页 > 运维架构 > Shell

shell 脚本入门--基础1

2017-09-08 15:49 591 查看
转载

http://www.cnblogs.com/Lynn-Zhang/p/5758287.html

shell 处理方式

shell 分类

shell 执行脚本

shell 变量

shell 符号

处理方式

交互式:用户输入一条命令,Shell就解释执行一条

批处理:用户事先写一 个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲 命令

shell 分类

Unix系统中常见的shell有:sh、csh、ksh、tcsh、bash

执行脚本

shell脚本第一行必须以 #!开头,它表示该脚本使用后面的解释器解释执行。

Shell会fork一个子进程并调用exec执行./script.sh这个程序,

具体原理:

输入命令执行shell脚本后:

交互式进程(父进程)创建一个子进程用于执行脚本,父进程等待子进程终止

子进程程序替换bash解释器

读取shell脚本的命令,将其以参数传递的方式传递给bash解释器

子bash对shell脚本传入的参数进行读取,读一行识别到它是一个命令,则再创建一个子进程,子bash等待该新进程终止

新进程执行该命令,执行完后将结果交给子进程

子进程继续读取命令,创建新进程,新进程执行该命令,将结果返回给子进程,直到执行完最后一条命令

子进程终止,将结果返回给交互式父进程

shell变量

shell变量不需要进行任何声明,直接定义即可,并且定义的时候等号两边不能存在空格,
shell变量种类
环境变量:shell进程的环境变量可以从当前shell进程传给fork出来的子进程。

本地变量:只存在于当前shell进程

用export命令可以把本地变量导出为环境变量。用unset命令可以删除已定义的环境变量或本地变量。引用shell变量要用到$符号,加{}可以防止歧义。

shell 符号

常见的通配符

* : 匹配0个或多个任意字符

? : 匹配一个任意字符

命令代换

反引号 “ (这里是反引号) 或者 $()

算数代换:$(())

单引号和双引号

Shell脚本中的单引号和双引号一样都是字符串的界定符,单引号用于保持引号内所有字符的字面值,而双引号有些情况则特殊。如果字符串中有特殊字符需要处理时就用双引号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 脚本 批处理