1 / 37

Shell 编程

Shell 编程. 9-1 Shell 的基本概念. 1.shell 的定义. 2. Linux shell 的常见版本 B shell (bsh):Unix 的最初 Shell ,在 Shell 编程方面比较优秀。 C Shell (csh): 在 C 语言编程方面性能较好 Bash Shell (bash):Bourne Shell 的增强版, Linux 系统的默认 Shell K shell (ksh) :综合 B Shell 和 C Shell 的特点于一身。 Tcsh : C Shell 的增强版,具有命令行编程接口和历史记录功能. 说明:

sven
Download Presentation

Shell 编程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Shell 编程

  2. 9-1 Shell的基本概念 1.shell的定义

  3. 2. Linux shell的常见版本 • B shell (bsh):Unix的最初Shell,在Shell编程方面比较优秀。 • C Shell (csh):在C语言编程方面性能较好 • Bash Shell (bash):Bourne Shell的增强版,Linux系统的默认Shell • K shell (ksh):综合B Shell和C Shell 的特点于一身。 • Tcsh :C Shell的增强版,具有命令行编程接口和历史记录功能

  4. 说明: • 改变用户的shell • #vi /etc/passwd • 切换用户的shell • #输入shell的可执行文件

  5. 9-2 Shell编程基础(Base Shell) 1. Shell的变量和参数 (1)变量的分类 • 按数据类型: 字符串变量,数值变量 • 按作用域划分: 全局变量,局部变量 • 按用途划分: 用户自定义变量,系统环境 变量,位置参数

  6. (2)自定义变量 • 定义:变量名=值 • 实例: MyHost=“www.linux.net”

  7. (3)环境变量 • HISTFILE //设置系统的历史记录文件 • HISTSIZE //设置命令历史记录文件的大小 • HOME //设置用户主目录 • PATH //设置通用路径 • UID //用户的UID • PS1(PS2)//一(二)级提示符 • TERM //终端类型

  8. (4)位置参数 • 位置参数:$1-$9 • 特殊参数: • $0 //脚本名 • $# //传递到脚本的参数个数 • $* //所有传递到脚本的参数 • $$ //脚本运行的当前进程的PID

  9. (5)变量的引用 格式:$变量名 实例: 定义变量:myname=“xiao li” 引用变量:$myname

  10. 2. Shell的输出和输入 (1)echo 功能:将若干字符输出到标准输出 格式:echo [参数] <字符串> 参数: -n //输出后不换行 注意: 字符串要用双引号作标记,同时可以 引用变量 实例:echo -n “Please input a number:”

  11. (2)read 功能:从标准输入读取数值赋给指定变量 格式:read <变量名> 实例: # read a 5 //键盘输入 # echo $a 5 //屏幕显示

  12. 3.运算符 • 算术运算符:+(加),-(减),*(乘), /(除) • 逻辑运算符:-a(与),-o(或),!(非) • 数值比较运算符: -eq(等于),-ne(不等于), -lt(小于),-le(小于等于), -gt(大于), -ge(大于等于)

  13. 操作符: • -x filename //判断可执行文件是否存在 • -f filename //判断普通文件是否存在 • -r filename //判断文件是否只读 • -w filename //判断文件是否可写 • -s filename //判断文件是否大于0

  14. 4. Shell脚本文件介绍 • Shell脚本的第一行总是以# ! /bin/bash开头,用来指明运行脚本所使用的shell解释器 • 脚本中的说明部分每一行都要以#开头来表示本行为注释行 • Shell脚本是从上到下,按行解释执行的 • 运行脚本文件前要确保其具有执行权限属性

  15. Shell脚本实例: • #vi /test1 #!/bin/bash # /test1 System=“RedHat Linux” echo $1 echo $2 echo $System • #chmod 755 /test1

  16. 运行shell脚本 格式:# 脚本文件 # /test1 you need // 位置变量$1的值为you,$2为need • 运行结果 you need RedHat Linux

  17. 9-3 Shell的常用语句 1. Test语句 • 功能:测试表达式的真假 • 格式:test 表达式 • 实例: if test 1 –lt 2 then echo “1<2” fi

  18. 2. If语句 • 功能:条件选择 • 格式: (1) if 条件 then 执行语句 fi

  19. (2) if 条件1 then 执行语句1 else 执行语句2 fi

  20. (3) if 条件1 then 执行语句1 elif 条件2 then 执行语句2 fi

  21. (4) if 条件1 then 执行语句1 elif 条件2 then 执行语句2 else 执行语句3 fi

  22. 实例: if [ -x /sbin/quotacheck ] then /sbin/quotacheck –avug else echo “quotacheck no exists!!” fi

  23. 3. Case语句 • 功能:多路选择 • 格式:case 变量 in 值1) 语句1 ;; 值2) 语句2 ;; ……… 值*) 语句n ;; esac

  24. 实例: #vi test2 read a case $a in 1) echo “a=1” ;; 2) echo “a=2” ;; *) echo “a != 1,2” ;; esac

  25. 4. For语句 • 功能:循环执行语句 • 格式:for 变量 in 变量值列表 do 循环体 done • 说明:变量从列表里取值一次,for循环即执行一次循环体

  26. 实例: # vi test4 #! /bin/bash for a in /home/* do echo $a done

  27. 5. While语句 • 功能:实现条件循环 • 格式: while [条件] do 循环体 done

  28. 实例: #! /bin/bash num=0 while [ $num -lt 5 ] do num=`expr $num + 1` echo $num done

  29. 6.Until语句 • 功能:条件循环 • 格式: until 条件 do 循环体 done • 说明:until循环执行一系列命令直到条件为真是停止。

  30. 实例: #! /bin/bash i=0 until [ $i –ge 5 ] do echo $i i=`expr $i + 1` done

  31. 7. 函数 • 格式: 函数名(参数) { 函数体 }

  32. 实例: # /bin/bash start() { if [ -x /sbin/quotaon ] then /sbin/quotaon –avug fi }

  33. stop () { If [ -x /sbin/quotaoff ] then /sbin/quotaoff –avug fi }

  34. restart() { stop start }

  35. echo -n “please input string:” read a case $a in start) start ;; stop) stop ;; restart) restart ;; esac

  36. 8. Exit • 功能:退出脚本 • 实例: if [ -f /etc/sysconfig/network ] then /etc/rc.d/init.d/network start else exit fi

  37. 上机作业 • 了解基本的编程常识 • 掌握shell编程的基本元素 • 掌握shell编程的基本语句

More Related