Shell 脚本学习记录(一)

来源:互联网 发布:php编写的网站 编辑:程序博客网 时间:2024/05/17 08:23

一、浅谈Shell
学习Shell脚本之前,我们有必要先来认识认识什么叫Shell?
谈到这个问题,我们首先来回忆一下计算机自底向上的体系,最下层是硬件,上面是驱动,上面是操作系统,在上面是Shell,所谓的外壳。
Shell其实是用户和操作系统进行人机互动的一个interface。主要通过命令行来使系统完成某种工作,因此Shell最简单的定义为—命令解释器:
可以把用户的信息传递给操作系统,也可以把操作系统的处理结果翻译给用户。
最长用的Shell:sh 、csh、bash等等
二、Shell的执行
1.shell里 #! /bin/bash的含义 #!是一种标记,后面是指定的解释器,执行之前 用命令 chmod +x 来修改 script.sh文件的权限,使其有可执行权限。执行期间 shell创建子进程来调用exec执行 ./script.sh。
三、基本符号含义
1. echo 是向 窗口输入文本 ,例如: echo “hello”
2. 将文件保存为test.sh 执行命令为 ./test.sh
3. 定义变量,或者字符串不用申明,例如:value=1 string=”hello world”
注意:变量名和等号之间不能加空格
4.使用变量 在前面加上string=happyechostring 或者 echo${string}
注意:{ }用来让系统更加清晰的认识到变量的界限,可加可不加。
5.只读 变量 前面加上 readonly 例如:string=”happy new year”
readonly string 使得变量变为不能修改的变量。
6.unset 可以删除变量 例如:unset value
7.‘ ’单引号。和C语言中的“”一样 是字符串的限定符,保持里面的字面值,不作出解释,
8.“”双引号会解析变量。
9. `反引号执行并引用一个命令的符号。
下面一张图看三种符号的区别:
这里写图片描述
‘’中的字符不做解释,“”里面的做出解释 “中的可执行其中的命令。
10.\ 转义字符,和c中一样,可以对符号进行转义,取它的字面意思,去掉特殊含义
11.整数间比较的 -eq 等于、-nq 不等于 、-lt 小于 、-gt大于、-le 小于等于 、-ge 大于等于
12.逻辑运算符:!逻辑非 -a 逻辑与 -o 逻辑或
13. 从命令行上获得值 read val,从命令行获得val的值
14. 特殊的命令 12 命令行第二个参数 。。。。。$@ 是命令行所有参数
四、基本语法
1.条件语句
①. if/else/elif/
if 、else 语句 和C语言中差不多 用于条件分支。注意 if 中判断语句0为真,1为假,这和C中的语法有区别,注意区分。
注意:if语句块后面要跟fi来结束if语句
这里写图片描述
2.case/esac
用法和C语言中switch /case语句一样 用esac语句结束语句块。
演示:
这里写图片描述
这里写图片描述
先写到这儿 其他语法见下文