标签:
Shell脚本编程
编程语言发展史:机器语言——>汇编语言——>高级语言
编程语言的分类:
(1)根据运行方式
静态语言:编译型语言,事先转换成可执行格式 C、C++、JAVA、C#
编译运行:源代码——>编译器 (编译)——>可执行程序文件
动态语言:解释型语言,边解释边执行 shell、Python、、Perl、ASP、PHP
解释运行:源代码——>运行时启动解释器,由解释器边解释边运行
(2)根据其编程过程中功能的实现是调用库还是调用外部程序文件来分
shell脚本编程:利用系统上的命令及编程组件进行编程
完整编程:利用库或编程组件进行编程
(3)编程模型:
面向过程式:以指令为中心来组织代码,数据服务于指令
适合开发小型程序,编程着眼立足于解决问题的过程本身
代表:C、shell
面向对象式:以数据为中心来组织代码,指令服务于数据
适合开发大型程序,编程着眼于将项目抽象成对象并定义对象之间的动作
代表:JAVA、Python、Perl、C++
shell脚本编程定义:1,面向过程式编程,依靠shell解释器解释执行
2,命令堆砌后,按实际需求结合命令控制流程机制,实现编程效果
shell脚本的用途:
1,自动化执行常用命令
2,处理文本或文件
3,执行系统管理和故障排除
4,创建简单的应用程序
编程逻辑处理方式:顺序执行、选择执行、循环执行
变量:命名的内存空间
数据存储方式:
字符:
数值:整型,浮点型
变量的作用:
1、申明数据存储格式
2、申明参与的运算
3、申明表示的数据范围
变量类型:
强类型:定义变量时必须定义类型,参与运算必须符合要求
使用前必须事先声明,甚至还要初始化
如:java,python
弱类型:无须指定类型,默认均为字符型;参与运算会自动
进行隐式类型转换,变量无须事先申明可直接调用
如:bash 不支持浮点数
变量命名法则:
1、不能使程序中的保留字:例如:if, for
2、只能使用数字、字母及下划线,且不能以数字开头
3、见名知义
4、统一命名规则:驼峰命名法
bash变量类型:根据变量生效范围
本地变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效
环境变量:生效范围为当前shell进程及其子进程
局部变量:生效范围为当前shell进程中某代码片断(通常指函数)
位置变量:$1, $2, ...来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数
特殊变量:$?, $0, $*, $@, $#
本地变量
变量赋值:var-name=value
(1) 字符串:var-name=“root"
(2) 变量引用:name="$USER"
(3) 命令引用:var-name=`COMMAND`
var-name=$(COMMAND)
变量引用:${var-name}, $var-name,花括号大多数情况下可以去掉
"":弱引用,其中的变量引用会被替换为变量值
‘‘:强引用,其中的变量引用不会被替换为变量值,而保持原字符串
显示已定义的所有变量:set
撤销变量:unset var-name
环境变量
变量声明、赋值:
export var-name=VALUE
declare -x var-name=VALUE
变量引用:$var-name, ${var-name}
显示已定义环境变量:
export、env、printenv
撤销:unset var-name
bash有许多内建的环境变量:PATH, SHELL, USRE,UID, HISTSIZE, HOME, PWD, OLDPWD, HISTFILE, PS1
只读和位置变量
只读变量:只能声明时定义,但不能修改和删除
申明方式:
readonly name
declare -r name
位置变量:在脚本代码中调用通过命令行传递给脚本的参数
$1, $2, ...:对应第1个、第2等参数,shift [#]轮换1-#个变量
$?:上一条命令的执行状态返回值
$0: 命令本身
$*: 传递给脚本的所有参数,全部参数合为一个字符串
$@: 传递给脚本的所有参数,每个参数为独立字符串
$#: 传递给脚本的参数的个数
$@ $* 只在被双引号包起来的时候才会有差异
创建shell脚本
第一步:使用文本编辑器来创建文本文件
首行必须包括shell声明序列:#!
格式要求:首行shebang机制
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/python
添加注释:注释以#开头
#!/bin/bash #Author:lovefirewall #Version:1.0 #Create time:2008-08-08 08:08:08 #Description:Disk usage rate alarm
第二步:运行脚本
添加执行权限,在命令行上指定脚本的相对路径或绝对路径
无需添加执行权限,直接运行解释器,将脚本作为解释器程序的参数运行
本文出自 “爱情防火墙” 博客,请务必保留此出处http://183530300.blog.51cto.com/894387/1836991
标签:
原文地址:http://183530300.blog.51cto.com/894387/1836991