Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103667192
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-19 13:10:37

 

      系统在ksh中预定义了许多和shell编程相关的变量,他们有:


      ●$$ 当前执行的进程PID


      ●$0 当前执行的shell文件名


      ●$# 传递给shell程序的所有位置参数个数


      ●$* 传递给shell程序的所有位置参数的值


      ●$? 上一条命令执行的返回码 (0表示成功)


      ●$! 上一条后台进程的pid


      ●$1~$9 对应shell程序中前9个行参数


      ●${10}~${n} 对应shell程序中更多的行参数(只对ksh)

      在ksh中用户可以给它的shell script程序从命令行中传递256参数,其中前9各参数用$1-$9表示,从第十个参数开始用${n}表示.


      ● 例子中的名为ascript shell程序需要从命令行中获得3个参数,我们在执行该程序时传递给该程序A B C这三个参数.$ascript A B C


      ●expr 使用程序用于实现整数算数运算


      ●组织表达式,用\(和\)可规定运算次序


      ●整数运算符: \* --乘 / --除 % -- 求余 + 加 - 减(也可为负号)


      ●&& 和 ||


      利用命令的返回码决定下条命令是否执行.


      command1&&command2(表示如果command1执行成功那么执行command2)


      $ls s* && rm s* (表示如果ls s*能找到文件则执行rm s*命令)


      ●command1 || command2(表示如果command1执行不成功那么执行command2)


      $cd /dir1 || echo "Cannot change to /dir1 "

      ●test 命令---检查条件表达方式是否成立


      ● 两种格式:test 表达式 或 [表达式]


      常用表达式有:


      -f file1 ---file1是一个文件


      -d file1 ---file1是一个目录


      -r file1 ---file1可读


      -w file1 ---file1可写


      -x file1 ---file1可执行


      -s file1 ---file1长度为非零

      if的基本结构是

      ●read 命令--从标准输入读入值,赋给shell变量

      for循环语句的基本结构是



      ●表示从给定的列表中能取出一个表示符就执行for循环中的命令.我们下面看到的例子表示如果/tmp目录中有文件就删除他.


      ●while循环语句的结构如图



      while循环表示当while语句后的条件为真时执行while循环中的命令.下面的例子表示如果x小于9则执行while循环中的语句(显示当前时间,统计当前进程数和在线用户数,并给x加1,1分钟后再判断x是否小于9.


阅读(915) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~