*.sh
2、自定义变量
name=zhangsan
echo $name
结果:zhangsan
3、#env—显示当前用户的环境变量
4、export—声明全局变量
5、{}的用法
#name=zhangsan
#echo {$name}is a student
6、、> >>输出符号
< <<输出符号
#cat <&0 表示接受来自键盘的输入
#cat <&file 表示接受来自文件的输入
数值运算
1)expr 3 +2
expr $name - 1
2)echo ((1+1))
7、输入输出描述符
输入:键盘 0
输出:屏幕 1
错误输出:分离 2
8、/dev/null---虚拟出来的一个设备,可以用来存储垃圾文件
9、read—从键盘读取变量的值
10、常见参数
1)$?---表示显示最近一条命令的执行状态
状态分类:
0:成功
1:失败
2)条件:
test 操作数1 操作符 操作数2
test 1 〉 2
操作符:
数值类型数据比较
字符串类型数据表较
文件类型数据表较
[ ]:代替test
注意括号前后加空格
操作数和操作符之间要有空格
[ -x file ]
. 脚本文件
Sh 脚本文件
./脚本文件
双引号:解释变量
单引号:当作字符串显示
$#:参数的总的数量
$*:显示所有参数
$1:各个参数
$2……$9
shift [n] :将参数向前移n位
3)测试命令分类
算术:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
字符串:
String 长度是否为零 不为零--true
-z string 长度是否为零 为零--true
String1=string2 是否相等
String1!= string2
文件测试表达式: --true
-e file 是否存在
-s file 存在且大小为零
-f file 存在 为普通文件
-d file 存在且为目录
-b file 存在且为块文件
-c file 存在 字符文件
-L file 存在 符号链接文件
-r file 存在 可读文件
-w file 存在 可写文件
-x file 存在 可执行文件
-O file 存在 属于当前用户
-G file 存在 属于当前用户组
File1 -nt file2 file1新于file2
File1 -ot file2 file1 旧于file2
11、流程控制结构
1) If:
If 条件
Then
执行命令
elif 条件
then
。。。
else
。。。
fi
File5.sh
执行命令的状态也可以当作条件
$?----
内核通过接受到命令退出时返回的数字,判断该命令是否执行成功
exit 100
例如:
测试接受参数清款
如果接受的参数大于3个,提醒
如果小于3个,显示参数
在命令行输出:
vi file1.sh
#!/bin/bash
if [ “$#” –gt 3 ]:then
echo “params is greater than 3”
else
echo $1
echo $2
echo $3
fi
2)case语句
语法
Case 值 in
模式1|模式3)
命令1
。。。
。。。。
;;
模式2)
Esac
提醒:模式里可以使用通配符
3)for循环
语法:
for 变量名 in 列表
do
命令1
。。。
done
4)until
until 条件
do
命令。。。。。
done
5)while
while 条件
do
命令
done
6)
break:终止当前循环
contine:终止当前次循环