Chinaunix首页 | 论坛 | 博客
  • 博客访问: 207276
  • 博文数量: 57
  • 博客积分: 460
  • 博客等级: 一等列兵
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-04 23:28
文章分类
文章存档

2015年(1)

2013年(6)

2012年(19)

2011年(31)

分类:

2011-12-14 00:34:24

原文地址:shell编程基础(4) 作者:余家十三少

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(局部变量)
阅读(813) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~