优势
Shell脚本语言的好处是简单、易学、易用,适合处理文件和目录之类的对象,以简单的方式快速完成某些复杂的事情通常是创建脚本的重要原则,脚本语言的特性可以总结为以下几个方面:
- 语法和结构通常比较简单。
- 学习和使用通常比较简单,
- 通常以容易修改程序的“解释”作为运行方式,而不需要“编译。
- 程序的开发产能优于运行效能。
Shell脚本语言是Linux/Unix系统上一种重要的脚本语言,在Linux/Unix领域应用极为广泛,熟练掌握Shell脚本语言是一个优秀的Linux/Unix开发者和系统管理员必经之路。利用Shell脚本语言可以简洁地实现复杂的操作,而且Shell脚本程序往往可以在不同版本的Linux/Unix系统上通用。
Shell脚本的文件名后缀通常是.sh (当然你也可以使用其他后缀或者没有后缀,.sh是为了规范)
程序编写格式:
代码示例:
进入vi编辑模式后编写执行代码
赋予权限并执行:
执行结果:
下面是几种运行情况:
这样的话需要保证脚本具有执行权限并且在环境变量PATH中有(.),这样在执行的时候会先从当前目录查找。
只要保证这个脚本具有执行权限即可
只要保证这个脚本具有执行权限即可
直接可以执行,甚至这个脚本文件中的第一行都可以不引入/bin/bash,它是将hello.sh作为参数传给bash命令来执行的。
bash的单步执行
bash语法检查
变量不需要声明,初始化不需要指定类型
变量命名
1、只能使用数字,字母和下划线,且不能以数字开头
2、变量名区分大小写
3、建议命令要通俗易懂
注意:变量赋值是通过等号(=)进行赋值,在变量、等号和值之间不能出现空格。
显示变量值使用echo命令(类似于Java中的system.out) ,加上$变量名,也可以使用${变量名}
例如:
变量的申明和使用:
变量分类:
Shell变量有这几类:本地变量、环境变量、局部变量、位置变量、特殊变量。
本地变量:
- 只对当前shell进程有效的,对当前进程的子进程和其它shell进程无效。
- 定义:VAR_NAME=VALUE
- 变量引用:${VAR_NAME} 或者 $VAR_NAME
- 取消变量:unset VAR_NAME
- 相当于java中的私有变量(private),只能当前类使用,子类和其他类都无法使用。
比如在一个bash命令窗口下再使用bash,则变成了子进程,本地变量不会被这个子进程所访问。
环境变量:
自定义的环境变量对当前shell进程及其子shell进程有效,对其它的shell进程无效
定义:export VAR_NAME=VALUE
对所有shell进程都有效需要配置到配置文件中
相当于java中的protected修饰符,对当前类,子孙类,以及同一个包下面可以共用。
和windows中的环境变量比较类似
自定义的环境变量:
局部变量:
- 在函数中调用,函数执行结束,变量就会消失
- 对shell脚本中某代码片段有效
- 定义:local VAR_NAME=VALUE
- 相当于java代码中某一个方法中定义的局部变量,只对这个方法有效。