shell编程入门
2015-08-01 17:41 我是攻城师 阅读(151) 评论(0) 收藏 举报在Linux中shell编程的地位不言而喻,从事Linux相关的工作必须会shell编程,就shell编程的基础做一点总结。
1、shell脚本以 #!/bin/bash 开头
2、变量
1)、定义变量。直接在输入变量名称即可,如果要将Linux指令的值赋值给变量,那么指令要使用 `` 包裹起来,就是Tab键上面的小点
变量赋值=两侧不要有空格

2)、变量可以使用{}包裹起来,也可以不使用。即使用 $time 与使用${time} 是相同的效果。
3)、变量替换
${var} 变量本来的值
${var:-word} 如果变量的值为空或者已被删除返回word的值,不改变var的值

${var:=word} 如果变量的值为空或者已被删除返回word的值,将var的值改为word

${var:+word} 如果变量已被定义返回word的值,不改变var的值

3、运算
1)、数学运算
原生的bash不支持数学运算,可以通过其他命令实现,expr,
因为使用了Linux指令,所以也要使用``包裹起来
加号两侧要留空格,

2)关系运算
-eq (equal) -ne (not equal) –gt (greater than) –lt (less than) –ge (greater or equal) –le(less or equal)
[ $a -eq $b ] 返回 true或者false
3)、布尔运算
! 非 -o 或 -a 与
4)、字符串运算
= 两个字符串是否相等 Linux主要使用C语言编写,在C语言中非0既是真

!= 两个字符串是否不相等
-z 字符串长度是否为 0 ,为0返回true 常用于判断指令的输出,传参
5)、文件测试运算符
-d file file 就是文件路径 文件是否是路径
-f file 文件是否是普通文件
-r file 是否可读
-w file 是否可写
-x file 是否可执行
-s file 是否为空 文件大小是否为0 不为空返回true
-e file 是否存在 存在返回true

为了做演示这里使用的if语句
4、字符串
可以是单引号也可以是双引号也可以什么都不加
单引号原样输出
双引号会转义输出
字符串直接拼接就行
1)、字符串长度

2)、截取字符串
从第几个开始截取,截取几个,索引默认从1开始

3)、查找子字符串
返回子字符串在所要查找的字符串中的起始索引

5、数组
shell中使用() 定义数组,数组元素使用空格分开
1)、创建数组
array = (val1 val2 val3 val4)
也可以单独定义数组各个分量的值
array[0]=val1
array[1]=val2
array[2]=val3

2)、获取数组的值

3)、获取数组长度

获取字符串的长度也是用的#
4)、打印出整个数组

或者

浙公网安备 33010602011771号