shell编程的基本过程:
1,vim file.sh
2,chmod +x file.sh
3, ./file.sh
shell语法:
1:变量:
shell允许用户建立变量存储数据,但不支持数据类型,将任何赋给变量的值都解释为字符串
eg:var="baby"
#变量赋值等号两边没有空格
echo $var
四种变量
1,shell编程中,用户变量一般全用大写字母表示
2,$X=$Y
3,unset取消变量的值
$0 shell脚本的名字
$1-9 shell的命令行参数
$# shell命令行参数的个数
$@ 所有命令行的参数
$? 上一条命令的推出状态
$* 所有命令行参数
$$ shell进程的ID
shell环境变量
HOME 用户家目录
IFS 分隔符
PATH shell搜索路径
PS1 shell命令提示符
PS2 shell命令换行提示符
TERM 终端类型
shell语句
说明性语句:
#注视语句
功能性语句:
shll命令,应用程序,其他程序
控制语句:
流程控制语句
read语句:read var var2 var3
read语句会将前面的变量一次读入,将后面的所有字符赋给最后一个变量
expr 算术命令expr主要用于简单的整数运算,+,-,\* / % (*需要转义)
expr 12 + 3 \* 4
test用于测试三种对象:字符串,整数,文件属性(匹配返回0,不匹配返回1)
字符串测试:
s1 = s2 测试s1和s2是否相等
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
a -lt b 测试a是否小于b
a -le b 测试a是否不大于b
文件测试:
-d name 测试是否为目录
-f name 测试是否为普通文件
-L name 测试是否为符号链接
-r name 测试是否存在且可读
-w name 测试是否存在且可写
-x name 测试是否存在且可执行
-s name 测试是否存在且长度不为0
f1 -nt f2 测试f1是否比f2新
f1 -ot f2 测试f1是否比f2旧
或|| -o
且&& -a
非 !
tput设置终端工作模式,或读出终端控制字符(不用)
shell控制语句
if []
then
else
fi
exit 推出;
test 命令的使用:test命令测试的条件成立时,命令返回0,否则返回非0
test测试的使用方法:
a,test $name -eq $1
b,if[ -f $name ]
c,if test -f $name
for 变量名 in 单词表(省略的单词表即为所有的命令行参数,要省略 in )
do
命令表
done
while [条件](条件为真时,执行)
do
命令表
done
until [条件](条件为假时,执行)
do
命令
done
break n(跳出n层循环)
continue n(跳转到n次循环)
local val(局部变量)
阅读(840) | 评论(0) | 转发(0) |