Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4194269
  • 博文数量: 776
  • 博客积分: 13014
  • 博客等级: 上将
  • 技术积分: 10391
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 17:00
文章分类

全部博文(776)

文章存档

2015年(55)

2014年(43)

2013年(147)

2012年(20)

2011年(82)

2010年(429)

分类:

2010-02-22 22:47:48

Linux系统下Shell编程

  Linux下的Shell编程是用来控制Linux下命令行,类似于Makefile。
  示例:
  #Test.sh
  #!/bin/sh     //使用的文件
  Mkdir ~/test
  Echo “mkdir successfully”
  在命令行执行:
  chmod 777 test.sh
  ./test.sh
  Shell命令特殊字符:
  #:注释
  &:后台执行
  >:把执行结果输入到一个指定的文件中
  >>:把执行结果附加到一个以存在的文件后面
  .:表示当前目录
  ..:表示上一级目录
  $? 最后一次执行的命令的返回码
  $$ Shell进程自己的PID
  $! Shell进程最近启动的后台进程的PID
  $# 命令行参数的个数
  $0 脚本文件本身的名字
  $1 $2 第一个,第二个命令行参数
  “$*”将所有的命令行参数组织成一个整体,作为一个单词
  $@ 将多个命令行参数看做是多个“单词”
  管道和重定向:
  >:输出重定向
  <:输入重定向
  >>:输出重定向(文件末尾追加)
  |:管道符
  例:
  Ls –l | wc –l  //ls输出各行后,用wc统计行数。也就是第一个的输出作为第二个命令的输入
  文件查找:
  Find 文件名,用来查找文件
  Grep “字符串”,用来查找字符串
  If结构
  格式:
  If[条件]
  Then
  命令
  Fi
  Case结构:
  Case 值 in
  模式1)
  命令1
  ;;
  ……
  *)
  命令n
  ;;
  Esac
  While结构:
  While[condition]
  Do
  Commands
  ……
  Last-command
  Done
  Until结构:
  Until[condition]
  Do
  Commands
  ……
  Last-command
  Done
  For结构:
  For变量名 in 列表
  Do
  命令
  Done
  实验:
  编写Shell程序,实现if语句的使用
  #!/bin/sh
  Data>>datalog   //将时间附加到datalog文件中
  If test –r errorfile
  Then cat errorfile>>datalog   //将出错信息写入datalog文件中
  Rm errorfile
  Else echo‘No error this hour’>>datelog
  Fi
  编写Shell程序,实现Case语句的使用
  #!/bin/sh
  #filename:append.sh
  Case“$#”in //检测命令行的个数
  1) cat >> $1;; //如果是1行,输出地一个参数
  2) cat >> $2 <$1;;
  *)echo’usage:append.sh[from] to’;;
  Esac
  编写Shell程序,实现Case语句的使用
  while [ -r abc.c ]  //测试abc.c文件是否存在且为可读
  do echo 'Before sleep......' //如果上面条件为真则输出 'Before sleep......
  sleep 5  //休眠5秒
  echo 'sleep done' //输出sleep done
  done
  编写Shell程序,实现for语句的使用
  #!/bin/sh
  #forTest
  #to test the method for
  COUNTER=0
  for FILES in *
  do
  COUNTER='expr $COUNTER + 1'
  done
  echo "there are $COUNTER files in 'pwd'"
  总结:
  Shell下的编程很丰富,可以大大提高编写应用程序的效率和管理文件及用户。
  来源:miaomi
阅读(1012) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~