- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 Shell程序设计 内容提要 Shell 概述 Shell脚本的定义与执行 Shell变量 输入和输出 Shell中的引号 条件表达式 控制语句 函数 Shell 概述 概念 Shell的概念是源自Unix的命令解释器。Shell不仅可解释用户输入的命令,同时,可解释执行基于命令的脚本语言。 Shell的分类 (1) sh (2) csh (3) ksh (4) bash Shell脚本 #!/bin/bash # script4-1.sht var1=welcome to use Shell script echo $var1 pwd ls -i 2. Shell脚本的执行方法 (1) 添加可执行权 $ chmod u+x demo.sh # 给demo.sh增加可执行权 $ ./demo.sh # 直接运行 (2) 指定Shell命令 $ bash demo.sh # 指定由bash解释执行 Shell脚本的解析过程 Shell变量 Shell变量的分类 用户自定义变量 2. 环境变量 3. 位置变量 4. 预定义变量 用户自定义变量 语法 变量名=变量值 语义 将变量值赋给变量变量名。 变量的引用 $变量名 清除变量的内容: unset 变量名 查看变量的值 set 环境变量 环境变量又称全局变量,通常,由系统在启动时设置,环境变量一般用大写字母表示, 输出用户自定义变量为环境变量 语法 export 用户自定义变量 语义 将用户自定义变量输出为环境变量。 Linux系统中的环境变量 全局性系统环境变量 环境变量一般定义在系统启动相关的配置文件中 bash shell全局性系统环境变量的资源文件 /etc/rc /etc/bashrc /etc/profile 用户定制的系统环境变量 用户定制的系统环境变量 ~/.bashrc ~/.bash_profile 位置变量 预定义变量 命令替换 语法一 var=$(command) 语法二 ` var=`command` 功能 将command命令的运行结果赋给变量var。 输入和输出 read命令 语法 read [选项] 变量名列表 功能 从键盘上读取变量的值 echo命令 语法 echo [选项] 字符串 功能 显示字符串或变量的值 echo命令选项 echo命令的转义符 实例分析 # 从键盘读取一个字符,不回显 $ read -s -n1 -p Yes (Y) or not (N)? answer # 输入变量var1和var2 $ read var1 var2 # 2行3列显示 $ echo -e a\tb\tc\nd\te\tf a b c d e f Shell中的引号 引号的分类 1. 反引号 反引号用于命令替换 2. 单引号 在一对单引号中的所有字符(包括元字符),保留原有字符的含义,其中不能包含单引号。 3. 双引号 在一对双引号中的字符(包括元字符),除了美元符$、反引号`和反斜杠\外,其余均保留原来字符的含义。 实例分析 显示字符* $ echo * 不进行变量替换 $ text=* means all files $ echo $text 反斜杠\为转义符 $ echo \$dlist $dlist 不加双引号与加双引号的比较 $ x=* $ echo $x # 显示当前目录下的所有文件 $ echo $x # 仅显示变量x的值* Shell 控制语句 条件语句 分枝语句 循环语句 函数 条件测试 使用test命令 语法: 使用括号[ ] 语法: 条件表达式的值为真返回零,为假时返回非零值 文件状态操作符 字符串操作符 数字操作符 逻辑操作符 命令分隔符 条件语句 语法一 if [ 条件表达式 ] then 命令序列1 else 命令序列2 fi 语义 当条件表达式的测试值为真时,执行命令序列1,否则,执行命令序列2。命令序列中的命令可以是一个或者多个。 条件语句 语法二 if [ 条件表达式 ]; then 命令序列 fi 语义 当条件表达式的测试值为真时,执行命令序列,否则,执行条件语句后面的命令。条件表达式与then之间的分号;起命令分隔符
文档评论(0)