Shell脚本基础PPT课件.ppt
《Shell脚本基础PPT课件.ppt》由会员分享,可在线阅读,更多相关《Shell脚本基础PPT课件.ppt(31页珍藏版)》请在三一文库上搜索。
1、ShellShell脚本基础脚本基础主讲主讲:刘晓涛刘晓涛1创建和执行创建和执行创建和执行创建和执行shellshellshellshell脚本脚本脚本脚本使用使用使用使用echoechoechoecho命令显示消息命令显示消息命令显示消息命令显示消息创建变量创建变量创建变量创建变量使用本地和全局变量使用本地和全局变量使用本地和全局变量使用本地和全局变量计算表达式计算表达式计算表达式计算表达式使用使用使用使用ifififif构造执行基于条件的构造执行基于条件的构造执行基于条件的构造执行基于条件的shellshellshellshell脚本脚本脚本脚本使用使用使用使用casecasecaseca
2、se构造执行基于条件的构造执行基于条件的构造执行基于条件的构造执行基于条件的shellshellshellshell脚本脚本脚本脚本识别用于执行重复任务的识别用于执行重复任务的识别用于执行重复任务的识别用于执行重复任务的whilewhilewhilewhile、forforforfor、和、和、和、和untiluntiluntiluntil构造构造构造构造在在在在shellshellshellshell脚本中使用脚本中使用脚本中使用脚本中使用breakbreakbreakbreak和和和和continuecontinuecontinuecontinue语句语句语句语句控制进程的执行控制进程的执
3、行控制进程的执行控制进程的执行计算命令的开始到结束之间的时间计算命令的开始到结束之间的时间计算命令的开始到结束之间的时间计算命令的开始到结束之间的时间议程议程2Shell图示图示3ShellShellShellShell脚本脚本脚本脚本u如果你有一系列经常使用的如果你有一系列经常使用的如果你有一系列经常使用的如果你有一系列经常使用的LinuxLinuxLinuxLinux命令,你可命令,你可命令,你可命令,你可以把它们存储在一个文件中。以把它们存储在一个文件中。以把它们存储在一个文件中。以把它们存储在一个文件中。ShellShellShellShell可以读取这可以读取这可以读取这可以读取这个
4、文件并执行其中的命令。这样的文件被称为个文件并执行其中的命令。这样的文件被称为个文件并执行其中的命令。这样的文件被称为个文件并执行其中的命令。这样的文件被称为脚本文件脚本文件脚本文件脚本文件执行执行执行执行shellshellshellshell脚本脚本脚本脚本u要创建一个要创建一个要创建一个要创建一个shellshellshellshell脚本,你要使用任何编辑器脚本,你要使用任何编辑器脚本,你要使用任何编辑器脚本,你要使用任何编辑器比如比如比如比如vivivivi在文本文件中编写它在文本文件中编写它在文本文件中编写它在文本文件中编写它u为了使用为了使用为了使用为了使用bash shellb
5、ash shellbash shellbash shell来执行脚本来执行脚本来执行脚本来执行脚本magic,magic,magic,magic,其命令其命令其命令其命令是:是:是:是:n$bash magic$bash magic$bash magic$bash magic 或或或或$./magic$./magic$./magic$./magicn$为终端提示符为终端提示符为终端提示符为终端提示符(普通用户普通用户普通用户普通用户)概述概述4echoechoechoecho命令命令命令命令 u用于在屏幕上显示消息用于在屏幕上显示消息用于在屏幕上显示消息用于在屏幕上显示消息u$echo Thi
6、s is an example of the echo echo This is an example of the echo echo This is an example of the echo echo This is an example of the echo commandcommandcommandcommandu这是这是这是这是echoechoechoecho命令的一个例子命令的一个例子命令的一个例子命令的一个例子概述概述5#符号符号符号符号 u用于在用于在用于在用于在shellshellshellshell脚本中可以包含脚本中可以包含脚本中可以包含脚本中可以包含注解注解注解注
7、解入口入口入口入口uecho echo echo echo“HelloHelloHelloHello”u#This is a comment line.This would#This is a comment line.This would#This is a comment line.This would#This is a comment line.This would not produce any outputnot produce any outputnot produce any outputnot produce any outputuecho echo echo echo“wo
8、rldworldworldworld”u这个例子中,第二行是一个注解的例子。它这个例子中,第二行是一个注解的例子。它这个例子中,第二行是一个注解的例子。它这个例子中,第二行是一个注解的例子。它将被将被将被将被shellshellshellshell忽略,而且不产生任何消息忽略,而且不产生任何消息忽略,而且不产生任何消息忽略,而且不产生任何消息概述概述6创建变量创建变量创建变量创建变量u可以在任何时间通过简单的赋值来创建。可以在任何时间通过简单的赋值来创建。可以在任何时间通过简单的赋值来创建。可以在任何时间通过简单的赋值来创建。u语法语法语法语法n =variable name=variable
9、 name=variable name=uLinuxLinuxLinuxLinux中的中的中的中的所有变量都被当作字符串所有变量都被当作字符串所有变量都被当作字符串所有变量都被当作字符串。引用变量引用变量引用变量引用变量u$符号用于引用一个变量的内容符号用于引用一个变量的内容符号用于引用一个变量的内容符号用于引用一个变量的内容uvariable1=$variable2variable1=$variable2变量变量7读入值给变量读入值给变量u在执行在执行shellshell脚本时,脚本时,shellshell还允许用户还允许用户从键盘中输入一个值给变量。可以使用从键盘中输入一个值给变量。可以使
10、用readread命令来做命令来做n$read fname$read fname8局部变量局部变量局部变量局部变量u当引用当引用当引用当引用shellshellshellshell时,只有创建它的时,只有创建它的时,只有创建它的时,只有创建它的shellshellshellshell能够知道能够知道能够知道能够知道到变量的存在到变量的存在到变量的存在到变量的存在全局变量全局变量全局变量全局变量u称为子称为子称为子称为子shellshellshellshellushellshellshellshell中创建的变量局部于创建它的中创建的变量局部于创建它的中创建的变量局部于创建它的中创建的变量局部于
11、创建它的shell,shell,shell,shell,除除除除非使用非使用非使用非使用exportexportexportexport命令特别指出是全局的命令特别指出是全局的命令特别指出是全局的命令特别指出是全局的环境变量环境变量环境变量环境变量u通过改变这些变量的值,用户能够定制此环境通过改变这些变量的值,用户能够定制此环境通过改变这些变量的值,用户能够定制此环境通过改变这些变量的值,用户能够定制此环境本地和全局本地和全局 Shell 变量变量9环境变量环境变量环境变量环境变量(续续续续)u一些环境变量的例子是一些环境变量的例子是一些环境变量的例子是一些环境变量的例子是HOME,PATH,
12、PS1,HOME,PATH,PS1,HOME,PATH,PS1,HOME,PATH,PS1,PS2,LOGNAME,SHLVL,PS2,LOGNAME,SHLVL,PS2,LOGNAME,SHLVL,PS2,LOGNAME,SHLVL,及及及及SHELLSHELLSHELLSHELLuHOMEHOMEHOMEHOME变量变量变量变量uLinuxLinuxLinuxLinux系统中的每个用户都有一个相关的称系统中的每个用户都有一个相关的称系统中的每个用户都有一个相关的称系统中的每个用户都有一个相关的称作作作作HOMEHOMEHOMEHOME的目录的目录的目录的目录u当一个用户登录后当一个用户登录
13、后当一个用户登录后当一个用户登录后,进入相应的进入相应的进入相应的进入相应的HOMEHOMEHOMEHOME的目录的目录的目录的目录u$echo$HOME$echo$HOME$echo$HOME$echo$HOME 本地和全局本地和全局 Shell 变量变量(续续)10环境变量环境变量环境变量环境变量(续续续续)uPATHPATHPATHPATH变量变量变量变量n包含一列包含一列包含一列包含一列用冒号定界用冒号定界用冒号定界用冒号定界的目录的路径名字,的目录的路径名字,的目录的路径名字,的目录的路径名字,便于可执行程序的搜索便于可执行程序的搜索便于可执行程序的搜索便于可执行程序的搜索uPS1P
14、S1PS1PS1变量变量变量变量nPS1(Prompt String 1)PS1(Prompt String 1)PS1(Prompt String 1)PS1(Prompt String 1)变量包含了变量包含了变量包含了变量包含了shellshellshellshell提提提提示符,示符,示符,示符,$符号符号符号符号n$PS1=HELLO$PS1=HELLO$PS1=HELLO$PS1=HELLOnHELLOHELLOHELLOHELLONew promptNew promptNew promptNew prompt本地和全局本地和全局 Shell 变量变量(续续)11环境变量环境变量环
15、境变量环境变量(续续续续)uPS2PS2PS2PS2变量变量变量变量n是为第二个提示符设置值的环境变量是为第二个提示符设置值的环境变量是为第二个提示符设置值的环境变量是为第二个提示符设置值的环境变量uLOGNAMELOGNAMELOGNAMELOGNAME变量变量变量变量n包含用户的注册名字包含用户的注册名字包含用户的注册名字包含用户的注册名字n$echo echo echo echo“$LOGNAME$LOGNAME$LOGNAME$LOGNAME”uSHLVLSHLVLSHLVLSHLVL变量变量变量变量n该变量包含你当前工作的该变量包含你当前工作的该变量包含你当前工作的该变量包含你当前工
16、作的shell levelshell levelshell levelshell level本地和全局本地和全局 Shell 变量变量(续续)12环境变量环境变量环境变量环境变量(续续续续)uSHELLSHELLSHELLSHELL变量变量变量变量n环境变量存储了用户的缺省环境变量存储了用户的缺省环境变量存储了用户的缺省环境变量存储了用户的缺省shellshellshellshelluenvenvenvenv命令命令命令命令n可用来查看所有的已移出的环境变量表和可用来查看所有的已移出的环境变量表和可用来查看所有的已移出的环境变量表和可用来查看所有的已移出的环境变量表和它们各自的值它们各自的值它
17、们各自的值它们各自的值本地和全局本地和全局 Shell 变量变量(续续)13在单个命令行中使用多个命令的另一种方法(非在单个命令行中使用多个命令的另一种方法(非在单个命令行中使用多个命令的另一种方法(非在单个命令行中使用多个命令的另一种方法(非PipesPipesPipesPipes)是通过命令替换是通过命令替换是通过命令替换是通过命令替换uecho The date is dateecho The date is date”exprexprexprexpr命令命令命令命令u用于求值算术表达式。该命令的输出被发送到用于求值算术表达式。该命令的输出被发送到用于求值算术表达式。该命令的输出被发送到
18、用于求值算术表达式。该命令的输出被发送到标准输出标准输出标准输出标准输出u$expr 4+5$expr 4+5$expr 4+5$expr 4+5 将在屏幕上显示将在屏幕上显示将在屏幕上显示将在屏幕上显示9 9 9 9命令替换命令替换14算术展开:算术展开:u你可以在你可以在$($()中括一个表达式,用中括一个表达式,用下面的命令来计算它的值:下面的命令来计算它的值:n$(expression)$(expression)命令替换命令替换(续续)15编写一个编写一个编写一个编写一个shellshellshellshell脚本用于计算呼叫中心未应答的询问的数量。该脚本脚本用于计算呼叫中心未应答的询
19、问的数量。该脚本脚本用于计算呼叫中心未应答的询问的数量。该脚本脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。未应答的询问的数量。未应答的询问的数量。未应答的询问的数量。所有未应答的询问的总数所有未应答的询问的总数所有未应答的询问的总数所有未应答的询问的总数=所有询问的总数所有询问的总数所有询问的总数所有询问的总数-应答的询问的应答的询问的
20、应答的询问的应答的询问的数量数量数量数量echoecho Please enter the total number of queries reported today.Please enter the total number of queries reported today.read read totalqueriestotalqueriesecho Please enter the number of queries answered.echo Please enter the number of queries answered.read answeredread answeredp
21、ending=pending=$($(totalqueriestotalqueries-answered)-answered)echo Number of calls pending=$pending“echo Number of calls pending=$pending“chmodchmod+x +x callpendingcallpending Example116test test test test 和和和和 命令命令命令命令u求值表达式,并返回求值表达式,并返回求值表达式,并返回求值表达式,并返回true(0)true(0)true(0)true(0)或或或或 falsefals
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shell 脚本 基础 PPT 课件
