标签:脚本
bash: 弱类型语言
变量类型:
环境变量 , 本地变量(局部变量) , 位置变量 , 特殊变量
1. 本地变量 : 只在当前进程中有效,父子 shell 不通用
声明方法 : Name = value
引用方法 : $( Name ) 括号可以省略
局部变量 : 作用域为当前代码段
声明方法 : local Name = value
2. 环境变量 : 作用域为当前 shell 进程及其子进程
声明方法 : Name= value
引用方法 : export Name (用户定义变量时,都为本地变量,export 可以将本地变量变成环境变量,从而使子进程可以引用)
3. 特殊变量 :
$? : 上一个命令执行状态的返回值
注: 程序执行后有两种返回值,一种是程序执行的结果,一种是程序状态的返回代码(0-255).
0 : 正确执行
1-255 : 错误执行
1,2,127 : 系统预留
撤销变量: unset Name
查看环境变量 : env , printenv , export
脚本:
命令的堆砌,按照实际需要,结合命令流程机制,实现的源程序.Linux内核只能执行ELF格式的文件,但是我们写的脚本是命令的堆砌,脚本格式属于二进制 ASCII 所以在脚本文件的第一行,我们需要告诉内核,需要调用一个脚本解释器,才能正常执行脚本.
魔数: ( shebang ) #!/bin/bash
脚本中常见的三种测试:
1.条件测试
2.字符测试
3.文件测试
1.条件测试: 根据命令的返回值来判断命令执行是否成功,再结合逻辑符号来完成条件判断
1)条件测试的表达式:
[ expression ] : [ ] 与表达式之间必须有扩号
[[ expression ]] : [[ ]] 与表达式之间必须有扩号
test expression
2.整数测试:
-eq : equal
-ne : not equal
-gt : great then
-lt : less then
-ge: great equal
-le : less equal
3.逻辑关系:
与 : &&
或 : ||
非 : !
4)单分支的 if 语句
if 判断条件; then
statement1
statement2
...
fi
5)多分支
if 判断条件; then
statement1
statement2
...
elseif statement
fi
6)算术运算
Ⅰ let 算数表达式 例: let c=$a+$b
Ⅱ $[算术表达式] 例: c= $[$a+$b]
Ⅲ $((算术表达式)) 例: c= $(($a+$b))
Ⅳ expr 算数表达式 注意,表达式中各操作数及运算符之间要有空格,而且要使用命令引用 反引号
例: c = ` expr $a + $b `
3.文件测试
-e File : exist 文件是否存在 [ -e File ] 注意: [ ] 同样需要有空格
-f File : file 是否为普通文件
-d File : directory 是否是目录文件
-r File : read 测试当前用户对指定文件是否有读权限
-w File: write
-x File: 执行
定义脚本退出状态码: exit 如果没有定义退出状态码,则最后一条命令的退出码,即为脚本的退出状态码
测试脚本是否有语法错误:
bash -n file
bash -x file 单步执行
位置变量 : 当脚本需要接受外部的参数时使用,$1 为第一个参数 $2 为第二个参数 ......
在执行脚本时,将变量跟在脚本后,以空格隔开.
特殊变量:
$? :
$# :参数列表
$@ : 参数列表
shift : 轮替,当参数太多是,我们可以用shift来踢出一个或多个参数, shift | shift 2
标签:脚本
原文地址:http://13023726.blog.51cto.com/13013726/1944380