1.创建shell文件
shell脚本文件其实就是shell命令的有序集合,创建好后使用chmod 740 file赋予文件执行权限即可
2.shell的变量
- shell允许用户建立变量存储数据,但是shell中的变量不支持数据类型,将任何赋给变量的值都解释为一串字符;
- 变量赋值的时候等号两边不可以加空格
- 调用变量时在变量前加上$,赋值的时候不需要
- 使用unset命令删除变量的赋值
3.位置变量
- $#:包含的命令行参数的个数
- $1~$9:第一到第九个命令行参数,10以后要加{}
- $0:与键入的命令行一样,包含脚本文件名,不包含命令行参数
- $ *或者$ @:包含所有的命令行参数"$1,$2,$3…"
- $#:最后一个命令行参数
- $?:前一个命令的输出结果(0代表真,非0代表假 )
4.shell中语句
- #号开头直到该行结束是注释语句,不会被执行
- read从标准输入读取一行,并赋值给后面的变量,格式为read var
- 一次性读取多个变量的格式为read var1 var2 var3。如果输入的数据数比变量数多,那么多余的全部都算在最后一个变量上,因为shell没有数据类型的概念,会把空格前后的数据一起当成一组数据;
- 输入语句会阻塞,如果输入的少了直接按下回车,那么会读取已经输入的数据,不会再阻塞
- echo会自动换行,如果第一行用的是/bin/sh,末尾加上\c则不换行;如果第一行用的是/bin/bash,echo前面加上-n不换行
#!/bin/bash
echo -n "input var:"
read var1 var2 var3
echo "var1 = $var1,var2 = $var2,var3 = $var3"
- expr进行简单整数运算,包括加(+),减(-),乘(*),除(/),求模(%)
- 算术 运算符两边要有空格
#!/bin/bash
A=$(expr 3 + 4 / 5) 只有整数运算,结果为3,而且需要用$()转换一下
echo "A = $A"
-
test语句可以测试三种对象,字符串,整数和文件属性,0为真
-
字符串测试:s1 = s2,测试内容是否完全一致
-
字符串测试:s1 != s2,测试内容是不一致
-
字符串测试:-z s1,测试s1长度是否为0
-
字符串测试:-n s1,测试s1长度是否不为0
-
整数测试:a -eq b,测试a与b是否相等
-
整数测试:a -ne b,测试a与b是否不相等
-
整数测试:a -gt b,测试a是否大于b
-
整数测试:a -ge b,测试a与b是否大于等于b
-
整数测试:a -lt b,测试a是否小于b
-
整数测试:a -le b,测试a 是否小于等于b
-
文件测试:-d name,测试name是否是一个目录
-
文件测试:-e name,测试一个文件是否存在#!/bin/bash
-
文件测试:-f name,测试name是否是普通文件
-
文件测试:-L name,测试name是否是符号链接
-
文件测试:-r name,测试name文件是否存在且为可读
-
文件测试:-w name,测试name文件是否存在且为可写
-
文件测试:-x name,测试name文件是否存在且为可执行
-
文件测试:-s name,测试name文件是否存在且长度不为0
#!/bin/bash
str="hello"
num="hello"
test $str = $num
echo $? 输出上一条语句的执行结果,0位真,这里输出0