《Shell脚本基础》PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
Shell脚本基础
主讲:刘晓涛
议程
创建和执行shell脚本 使用echo命令显示消息 创建变量 使用本地和全局变量 计算表达式 使用if构造执行基于条件的shell脚本 使用case构造执行基于条件的shell脚本 识别用于执行重复任务的while、for、和until 构造 在shell脚本中使用break和continue语句 控制进程的执行 计算命令的开始到结束之间的时间
$ read fname
本地和全局 Shell 变量
局部变量 当引用shell时,只有创建它的shell能够知道 到变量的存在
全局变量 称为子shell shell中创建的变量局部于创建它的shell,除 非使用export命令特别指出是全局的
9
环境变量 通过改变这些变量的值,用户能够定制此环境
10
本地和全局 Shell 变量(续)11
环境变量(续) PATH变量 包含一列用冒号定界的目录的路径名字, 便于可执行程序的搜索 PS1变量 PS1(Prompt String 1)变量包含了shell提 示符,$符号 $ PS1="HELLO>" <Enter> HELLO> New prompt
变量
创建变量 可以在任何时间通过简单的赋值来创建。 语法 <variable name>=<value> Linux中的所有变量都被当作字符串。 引用变量 $符号用于引用一个变量的内容
7
variable1=${variable2}
8
读入值给变量 在执行shell脚本时,shell还允许用户 从键盘中输入一个值给变量。可以使用 read命令来做
本地和全局 Shell 变量(续)
环境变量(续) 一些环境变量的例子是HOME, PATH, PS1, PS2, LOGNAME, SHLVL, 及SHELL HOME变量 Linux系统中的每个用户都有一个相关的称 作HOME的目录 当一个用户登录后,进入相应的HOME的目录 $ echo $HOME
18
test测试命令1
数值测试
-eq:等于则为真 -ne:不等于则为真 -gt:大于则为真 -ge:大于等于则为真 -lt:小于则为真 -le:小于等于则为真
19
test测试命令2
字符串测试
=:等于则为真 !=:不相等则为真
20
-z字符串:字符串长度为零则为真
-n字符串:字符串长度不为零则为真
本地和全局 Shell 变量(续) 12
环境变量(续) PS2变量 是为第二个提示符设置值的环境变量 LOGNAME变量 包含用户的注册名字 $ echo “${LOGNAME}” SHLVL变量 该变量包含你当前工作的shell level
本地和全局 Shell 变量(续)
环境变量(续)
4
概述 echo命令5用于在屏幕上显示消息 $ echo "This is an example of the echo command" 这是echo命令的一个例子
概述
# 符号
6
用于在shell脚本中可以包含注解入口 echo “Hello” # This is a comment line. This would not produce any output echo “world” 这个例子中,第二行是一个注解的例子。它 将被shell忽略,而且不产生任何消息
chmod +x callpending
条件执行
test 和 [] 命令 求值表达式,并返回true (0)或 false
if构造 Linux shell提供了循环和判定的构造,可以 在shell脚本中使用
17
算术测试 结合if构造,它可用于测试变量的数字值
条件执行(续)
串测试 test命令也可用于字符串 文件测试 test命令也可用于检查文件的状态 exit命令 用于终止shell脚本的执行并返回到$提示符 下
命令替换(续)
算术展开: 你可以在$((… ))中括一个表达式,用 下面的命令来计算它的值: $((expression))
15
Example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本 应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算 未应答的询问的数量。
16
所有未应答的询问的总数=所有询问的总数-应答的询问的 数量
echo "Please enter the total number of queries reported today." read totalqueries echo "Please enter the number of queries answered." read answered pending=$((totalqueries-answered)) echo "Number of calls pending = $pending“
2
Shell图示
3
概述
Shell脚本 如果你有一系列经常使用的Linux命令,你可 以把它们存储在一个文件中。Shell可以读取 这个文件并执行其中的命令。这样的文件被称 为脚本文件 执行shell脚本 要创建一个shell脚本,你要使用任何编辑器 比如vi在文本文件中编写它 为了使用bash shell来执行脚本magic,其命令 是: $ bash magic 或 $ ./magic $为终端提示符(普通用户)
13
SHELL变量 环境变量存储了用户的缺省shell env命令 可用来查看所有的已移出的环境变量表和 它们各自的值
命令替换
在单个命令行中使用多个命令的另一种方法(非 Pipes)是通过命令替换
14
echo "The date is `date`”
expr命令 用于求值算术表达式。该命令的输出被发送到 标准输出 $ expr 4 + 5 将在屏幕上显示9
Shell脚本基础
主讲:刘晓涛
议程
创建和执行shell脚本 使用echo命令显示消息 创建变量 使用本地和全局变量 计算表达式 使用if构造执行基于条件的shell脚本 使用case构造执行基于条件的shell脚本 识别用于执行重复任务的while、for、和until 构造 在shell脚本中使用break和continue语句 控制进程的执行 计算命令的开始到结束之间的时间
$ read fname
本地和全局 Shell 变量
局部变量 当引用shell时,只有创建它的shell能够知道 到变量的存在
全局变量 称为子shell shell中创建的变量局部于创建它的shell,除 非使用export命令特别指出是全局的
9
环境变量 通过改变这些变量的值,用户能够定制此环境
10
本地和全局 Shell 变量(续)11
环境变量(续) PATH变量 包含一列用冒号定界的目录的路径名字, 便于可执行程序的搜索 PS1变量 PS1(Prompt String 1)变量包含了shell提 示符,$符号 $ PS1="HELLO>" <Enter> HELLO> New prompt
变量
创建变量 可以在任何时间通过简单的赋值来创建。 语法 <variable name>=<value> Linux中的所有变量都被当作字符串。 引用变量 $符号用于引用一个变量的内容
7
variable1=${variable2}
8
读入值给变量 在执行shell脚本时,shell还允许用户 从键盘中输入一个值给变量。可以使用 read命令来做
本地和全局 Shell 变量(续)
环境变量(续) 一些环境变量的例子是HOME, PATH, PS1, PS2, LOGNAME, SHLVL, 及SHELL HOME变量 Linux系统中的每个用户都有一个相关的称 作HOME的目录 当一个用户登录后,进入相应的HOME的目录 $ echo $HOME
18
test测试命令1
数值测试
-eq:等于则为真 -ne:不等于则为真 -gt:大于则为真 -ge:大于等于则为真 -lt:小于则为真 -le:小于等于则为真
19
test测试命令2
字符串测试
=:等于则为真 !=:不相等则为真
20
-z字符串:字符串长度为零则为真
-n字符串:字符串长度不为零则为真
本地和全局 Shell 变量(续) 12
环境变量(续) PS2变量 是为第二个提示符设置值的环境变量 LOGNAME变量 包含用户的注册名字 $ echo “${LOGNAME}” SHLVL变量 该变量包含你当前工作的shell level
本地和全局 Shell 变量(续)
环境变量(续)
4
概述 echo命令5用于在屏幕上显示消息 $ echo "This is an example of the echo command" 这是echo命令的一个例子
概述
# 符号
6
用于在shell脚本中可以包含注解入口 echo “Hello” # This is a comment line. This would not produce any output echo “world” 这个例子中,第二行是一个注解的例子。它 将被shell忽略,而且不产生任何消息
chmod +x callpending
条件执行
test 和 [] 命令 求值表达式,并返回true (0)或 false
if构造 Linux shell提供了循环和判定的构造,可以 在shell脚本中使用
17
算术测试 结合if构造,它可用于测试变量的数字值
条件执行(续)
串测试 test命令也可用于字符串 文件测试 test命令也可用于检查文件的状态 exit命令 用于终止shell脚本的执行并返回到$提示符 下
命令替换(续)
算术展开: 你可以在$((… ))中括一个表达式,用 下面的命令来计算它的值: $((expression))
15
Example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本 应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算 未应答的询问的数量。
16
所有未应答的询问的总数=所有询问的总数-应答的询问的 数量
echo "Please enter the total number of queries reported today." read totalqueries echo "Please enter the number of queries answered." read answered pending=$((totalqueries-answered)) echo "Number of calls pending = $pending“
2
Shell图示
3
概述
Shell脚本 如果你有一系列经常使用的Linux命令,你可 以把它们存储在一个文件中。Shell可以读取 这个文件并执行其中的命令。这样的文件被称 为脚本文件 执行shell脚本 要创建一个shell脚本,你要使用任何编辑器 比如vi在文本文件中编写它 为了使用bash shell来执行脚本magic,其命令 是: $ bash magic 或 $ ./magic $为终端提示符(普通用户)
13
SHELL变量 环境变量存储了用户的缺省shell env命令 可用来查看所有的已移出的环境变量表和 它们各自的值
命令替换
在单个命令行中使用多个命令的另一种方法(非 Pipes)是通过命令替换
14
echo "The date is `date`”
expr命令 用于求值算术表达式。该命令的输出被发送到 标准输出 $ expr 4 + 5 将在屏幕上显示9