shell编程-总结.ppt
《shell编程-总结.ppt》由会员分享,可在线阅读,更多相关《shell编程-总结.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 7 7 章章 LinuxLinux中的中的shellshell编程编程1 1知识要点知识要点1.Shell1.Shell编程介绍编程介绍2.2.变量、表达式变量、表达式3.3.流程控制流程控制|函数函数|数组数组第第 7 7 章章 LinuxLinux中的中的shellshell编程编程2 21.Shell脚本基本结构脚本基本结构#!/bin/bash#脚本必须以脚本必须以#!开始开始#!表示:表示:/bin/bash将执行该脚本文件中的程序将执行该脚本文件中的程序#表示此后的字符串为注释表示此后的字符串为注释脚本支持:变量、表达式、流程控制、函数、注释脚本支持:变量、表达式、流程控制、
2、函数、注释 各种外部命令和程序调用、命令行参数、系统变量各种外部命令和程序调用、命令行参数、系统变量等等。等等。脚本就是将上述各种元素通过一定的逻辑关系进脚本就是将上述各种元素通过一定的逻辑关系进行组装已完成特定任务的程序。行组装已完成特定任务的程序。第第 7 7 章章 LinuxLinux中的中的shellshell编程编程3 31.Shell脚本及运行脚本及运行step1.利用利用vi编辑如下脚本并保存成编辑如下脚本并保存成first.sh#!/bin/bashecho“Hello,welcome to Linux world”echo“Today is:$(date)”Step2.设置执
3、行权限:设置执行权限:chmod u+x first.shStep3.执行脚本执行脚本:./first.sh 或或 sh first.sh 或或 bash first.sh第第 7 7 章章 LinuxLinux中的中的shellshell编程编程4 42.Shell变量及表达式变量及表达式 -变量类型变量类型A.环境变量环境变量(系统工作环境需要的全局变量系统工作环境需要的全局变量)$PATH,$BASH,$HOME,$PWD,$TERM,$PWDB.自定义变量自定义变量(仅在脚本中使用局部变量仅在脚本中使用局部变量)语法格式:语法格式:变量名变量名=变量值变量值#变量名约定大写变量名约定大
4、写例如:例如:A=10;echo$A SA=“hello Linux”;echo$SAC.只读变量只读变量 readonly 变量名变量名D.导出局部变量导出局部变量 export 变量名变量名 或者或者 export 变量名变量名=变量值变量值E.函数中的同名局部变量函数中的同名局部变量:local 变量名变量名=变量值变量值第第 7 7 章章 LinuxLinux中的中的shellshell编程编程5 52.Shell变量及表达式变量及表达式 -注意问题注意问题几个注意问题:几个注意问题:A.变量指向一个字符串变量指向一个字符串(含有空格含有空格),则变量值必须,则变量值必须使用双引号括起
5、来。例如:使用双引号括起来。例如:SA=“Hello Linux”B.引用时变量前加引用时变量前加$,单引号和双引号的区别,单引号和双引号的区别 echo Oh$SA$SA;echo“Oh$SA$SA”C.清除不需要的变量:清除不需要的变量:unset 变量名变量名 如:如:unset SA第第 7 7 章章 LinuxLinux中的中的shellshell编程编程6 62.Shell变量及表达式变量及表达式-位置参数位置参数(程序的参数程序的参数)何为位置参数?分析如下的命令调用何为位置参数?分析如下的命令调用cat /etc/passwd ;cp /root/a.c /home/me/b.
6、c命令命令/程序程序引用方式引用方式:$0参数参数:引用方式引用方式$1 以此类推:以此类推:$0,$1,$2$*:表示所有位置参数表示所有位置参数$#:表示位置参数的个数表示位置参数的个数$:同同$*第第9个以后的参数:个以后的参数:$10,$11 命令行中常用:命令行中常用:$?命令执行后返回的状态命令执行后返回的状态$!后台运行的最后一个进程号后台运行的最后一个进程号$当前进程号当前进程号第第 7 7 章章 LinuxLinux中的中的shellshell编程编程7 72.Shell变量及表达式变量及表达式-位置参数位置参数(程序的参数程序的参数)一个关于命令位置参数的脚本文件一个关于命
7、令位置参数的脚本文件 arg.sh#!/bin/bashecho“完整的命令行完整的命令行:$0$*”echo“程序是:程序是:$0”echo“所有的参数:所有的参数:$*”echo“参数个数:参数个数:$#”if$#-ge 1;then echo“第第1个参数个参数:$1”fi问题:如果参数没输入,但程序中需要怎么办问题:如果参数没输入,但程序中需要怎么办?第第 7 7 章章 LinuxLinux中的中的shellshell编程编程8 82.Shell变量及表达式变量及表达式 缺省参数缺省参数(位置替换位置替换)比如脚本比如脚本 mycal.sh 5 6+;mycal.sh 5 6*如果没有
8、输入如果没有输入+或者或者*,我能否默认取为,我能否默认取为+呢?而不是呢?而不是认为程序执行出错呢?认为程序执行出错呢?VAR=$参数参数-word :有则用参数,否则用有则用参数,否则用wordVAR=$参数参数=word :有则用参数有则用参数,否则两个用否则两个用wordVAR=$参数参数?word:有则用参数,否则报错退出有则用参数,否则报错退出VAR=$参数参数+word :有则用有则用word,否则不做,否则不做注意:上述四条经常用在位置参数的使用上。注意:上述四条经常用在位置参数的使用上。第第 7 7 章章 LinuxLinux中的中的shellshell编程编程9 92.Sh
9、ell变量及表达式变量及表达式 缺省参数缺省参数(位置替换位置替换)脚本脚本 mycal.sh#!/bin/bashLEFT=$1-1#第第1个位置参数个位置参数,缺省为缺省为1RIGHT=$2-1#第第2个位置参数个位置参数,缺省为缺省为1FUHAO=$3-+#第第3个位置参数个位置参数,缺省为缺省为+case“$FUHAO”in+)RE=expr$LEFT+$RIGHT;-)RE=expr$LEFT-$RIGHT;esacecho“$LEFT$FUHAO$RIGHT=$RE”第第 7 7 章章 LinuxLinux中的中的shellshell编程编程10102.Shell变量表达式变量表达
10、式 概述概述 Shell中的变量表达式主要利用各种测试语句、条中的变量表达式主要利用各种测试语句、条件来获得字符串、文件、数字等所处的状态。件来获得字符串、文件、数字等所处的状态。表达式的操作符主要包括:表达式的操作符主要包括:字符操作符:字符操作符:=,!=,-n,-z 数字操作符:数字操作符:-eq,-ne,-ge,-gt,-le,-lt =,!=,=,=,逻辑操作符:逻辑操作符:!,-a,-o 文件操作符:文件操作符:-d,-f,-L,-r,-w,-x,-s,-e,-z,-c,-b,-o 可以使用可以使用 test 命令来测试上述各种表达式状态。命令来测试上述各种表达式状态。第第 7 7
11、 章章 LinuxLinux中的中的shellshell编程编程11112.Shell变量表达式变量表达式 概述概述字符串:字符串:A=abcd;test$A=abcd;echo$?A=“;test z$A;echo$?test n$A;echo$?test z“$A”;echo$?数字比较:数字比较:A=1234;test$A eq 1234;echo$?test$A gt 1000;echo$?逻辑比较逻辑比较:test -f/etc/passwd a s/etc/passwd test -d/root ;echo$?test!z/etc/passwd;echo$?第第 7 7 章章 Li
12、nuxLinux中的中的shellshell编程编程12123.Shell脚本流程控制脚本流程控制Shell支持的流程控制语句主要有:支持的流程控制语句主要有:分支语句:分支语句:if elif else fi,case esac循环语句:循环语句:for,while,until函数定义:函数定义:function funname()第第 7 7 章章 LinuxLinux中的中的shellshell编程编程13133.Shell脚本流程控制脚本流程控制分支语句分支语句if单分支单分支if 条件条件 then 语句语句 fi或者或者if 条件条件;then 语句语句 fi或者或者if(条件条件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- shell 编程 总结
限制150内