Shell脚本学习
1.Shell命令行的书写规则:
多个命令可以在一个命令行中执行,但需用 ; 分割
长命令语句可以用 \ 在命令行中扩充
2.执行shell程序
2.1 ./ test.sh
2.2 Bash test.sh
2.3 为了在任何目录都可以编译和执行shell所编写的程序,把/bin这个目录添加到整个环境变量中
export PATH=/bin:$PATH
test.sh
3.在Shell程序中使用的参数
3.1 位置参数
由系统提供的参数称为位置参数,位置参数的值可以用$N得到,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号表示程序名字,从1开始表示传递给程序的参数,以此类推。
3.2 内部参数
$0:命令含命令所在的路径
$#:传递给程序的总的参数数目
$?:shell程序在shell中退出的情况,正常退出则返回0,反之则返回非0值
$*:传递给程序的所有参数组成的字符串
4.变量
4.1 变量的赋值
变量名=值 (注意:=前后没有空格)
4.2 访问变量值
如果要访问变量值,可以在变量前面加一个美元符合$
4.3 键盘读入变量值
read 变量
5.表达式的比较
5.1 字符串比较
= (注意:这里的 = 前后需有空格)比较两个字符串是否相同,相同则为真
!= 比较两个字符串是否不相同,不相同则为真
-n 比较字符串长度是否大于0
-z 比较字符串长度是否等于0
5.2 数字比较
-eq 相等 (equal)
-ge 大于等于 (greater equal)
-le 小于等于(less equal)
-ne 不等于
-gt 大于
-lt 小于
5.3 逻辑操作
! 反:与一个逻辑值相反的逻辑值
-a 与(and):两个逻辑值均为是,则返回值为是
-o 或(or):两个逻辑值有一者为是,则返回值为是
5.4 文件操作
-d 对象存在且为目录,则返回值为是
-f 对象存在且为文件,则返回值为是
-r对象存在且为可读,则返回值为是
-w对象存在且为可写,则返回值为是
-x对象存在且为可执行,则返回值为是
6.循环结构语句
6.1 for循环
for 变量 in 列表 do 操作 done
6.2 while循环
while 表达式 do 操作 done
6.3 until循环
until 表达式 do 操作 done
7.条件语句结构
7.1 if语句
if 表达式1; then 操作; elif 表达式2; then 操作; elif 表达式3; then 操作; else 操作; fi;
7.2 case语句
case 表达式 in 值1|值2) 操作;; case 表达式 in 值3|值4) 操作;; case 表达式 in 值5|值6) 操作;; esac