




免费预览已结束,剩余73页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章Shell编程 教学提示 Linux高效 灵活的系统管理离不开文本环境操作 vi编辑器是Linux系统中最常用的编辑器 在文本环境 Shell是负责用户和操作系统之间的沟通 把用户下达的命令解释给系统去执行另一面 Shell同时也是高级程序设计语言 Linux最常见的Shell版本是Bash 教学要求 学习完本章后 将能够灵活使用vi编辑器 了解Shell基础 能够使用Shell编程进行管理系统 主要内容 Vi编辑器Shell概述Shell编程 vi编辑器 对于Linux操作系统 以下几种情况要求Linux系统提供相应的文本编辑器用于用户建立或者设定文本文件 虽能Linux系统提供了两种系统环境 文字环境与图形环境 但对于Linux系统管理员来说 在文字环境操作方式下可以高效地完成所有的任务 在Linux系统中的参数文件几乎都是ASCII码的纯文本文件 要管理好Linux系统 纯文本的手工设定仍然是需要的 因为使用文字模式来处理Linux的系统设定问题 不但可以比较容易了解到Linux的运作状况 也比较容易了解整个设定的基本精神 更能 保证 修改可以顺利的被运作 vi编辑器 对于要求做服务器主机 使用字符界面不用启动图形工作环境 大大地节省了系统资源开销 系统管理任务通常在远程进行 而远程登录后进入的是字符工作方式 Linux系统中提供行编辑器 ed ex edit 和屏幕编辑器 vi vi汇集了行编辑器和屏幕编辑器特点 是Linux下最正规的文字接口下的文书处理器 也是Linux系统中最常用的编辑器 vi的工作模式 vi是Linux UNIX 世界最强大的文本编辑工具 vi是visual的缩写 是一个全屏幕文本编辑器 vi有两种工作模式 编辑模式和指令模式 编辑模式用来输入和编辑文字资料 而指令模式则用来下达一些编排文件 存盘以及退出vi等操作指令 1 编辑模式编辑模式是用来输入和编辑文件的模式 屏幕上会显示用户的键入 按键不是被解释为命令执行 而是作为文本写到用户的文件中 vi的工作模式 2 指令模式指令模式是用来编辑 存盘和退出文件的模式 运行vi后 首先进入指令模式 此时输入的任何字符都被视为指令对待 键入的命令不会在屏幕上显示 3 状态行状态行 屏幕底部一行 通常是第24行 被vi编辑器用来反馈编辑操作结果 错误消息或者提供信息的消息会在状态行中显示出来 vi还会在24行显示那些以冒号 或者问号 开头的命令 如果从指令模式切换到编辑模式 则可以按 Insert 键 如果从编辑模式切换到指令模式 则可以按 Esc 键 如果不能断定目前处于什么模式 则可以多按几次 Esc 键 这时系统会发出蜂鸣声 证明已经进入指令模式 vi的使用 1 启动vi在虚拟终端的系统提示字符下键入vitext txt 按Enter键 系统进入vi的初始画面 屏幕显示如图进入vi的初始画面 student Ubuntu vitest txt注意 如果是新建档案会显示 NewFile 如果text txt是已经存在的文件 则会显示目前的文件名 行数与字符数 2 按下i进入编辑模式 开始编辑文字进入vi编辑器时 处于命令模式 从键盘输入的字符都被作为命令 通过输入I o a等单个字符 就可以进入编辑方式 这时从键盘输入的字符都被当作文件的正文 3 按下 ESC 键到指令模式用户编辑文本完毕了 按下 ESC 键到可以退回指令模式 如果不能断定目前处于什么模式 则可以多按几次 Esc 键 这时系统会发出蜂鸣声 证明已经进入指令模式 4 退出vi要离开vi可以在指令模式下键入 q q 或 wq 离开 注意冒号 键入冒号后 在屏幕的最末尾一行会出现冒号提示符 等待用户键入指令 输入完指令后回车 vi就会执行该指令 退出指令含义 q 如果用户只是读文件的内容而未对文件进行修改 可以使用 q 退出vi 如果用户对文件的内容作了修改 而用 q 退出时 那么vi在屏幕的底行会提示信息 Nowritesincelastchange q overrides q 如果用户对文件的内容作了修改 然后决定要放弃对文件的修改 可以使用 q 强行退出vi 在这种情况下文件原来的内容不变 wq 用户在编辑结束时 用 wq 命令保存文件至磁盘 然后退出vi ZZ指令表示快速保存文件的内容 然后退出vi 功能和 wq 相同 注意 ZZ前面没有冒号 w vi编辑器强行覆盖一个已存在的文件 5 移动光标不管处于什么模式下 四个方向键是最常用的光标移动键 为了进行文本的编辑修改 还有退格键及组合键等其他按键可以移动光标 可以参考vi手册说明 这里不再赘述 Shell概述 想想 当计算机播放音乐这个过程需要什么 声卡 没有声卡怎么播放东西操作系统 当然还要相关的声卡驱动程序 操作系统通过管理驱动程序管理设备 内存等与硬件相关的东西还要什么 就是你呐 没有用户发出命令操作系统怎么知道播放但是操作系统怎样识别用户发出的指令呢 也就是说 比如你输入一个指令 ls l 操作系统怎么知道你要列出文件信息呢 因此在操作系统与用户之间还要一个界面 他把用稍微人性化的语言或操作转换为操作系统能够识别的操作 在文本环境 这个沟通的工作 就是由shell完成 Shell关系图 什么是Shell Shell原意为外壳 用来形容物体外部的架构 Linux系统的Shell作为操作系统的外壳 为用户提供使用操作系统的接口 它是命令语言 命令解释程序及程序设计语言的统称 1 Shell可称为命令解释器 负责用户和操作系统之间的沟通 把用户下达的命令解释给系统去执行 并将系统传回的信息再次解释给用户 所以 它拥有自己内建的Shell命令集 也能被系统中其他应用程序调用 2 Shell还是一种高级程序设计语言 它有变量 关键字 有各种控制语句 如if case while for等语句 有自己的语法结构 利用Shell程序设计语言可以编写出功能强大的代码程序 Shell解析命令过程 学过DOS的都知道 DOS有内部命令与外部命令之分 在Shell中 有一些命令 比如改变工作目录命令cd 是包含在Shell内部的 还有一些命令 例如拷贝命令cp和移动命令rm 是存在于文件系统中某个目录下的单独的程序 如 bin目录中 对用户而言 不必关心一个命令是建立在Shell内部还是一个单独的程序 Shell接到用户输入的命令后首先检查命令是否是内部命令 若不是再检查是否是一个应用程序 然后 Shell在搜索路径里寻找这些应用程序 搜索路径就是一个能找到可执行程序的目录列表 如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件 将会显示一条错误信息 如果能够成功找到命令 该内部命令或应用程序将被系统传送给Linux内核 常用的Shell 1 Shell种类Linux中的Shell有多种类型 其中最常见的是BourneShell sh CShell csh 和KornShell ksh 三种Shell各有优缺点 BourneShell是Unix最初始的Shell 并且在每种Unix上都可以使用 BourneShell在Shell编程方面相当优秀 但在处理与用户的交互方面做得不如其他几种Shell Bash BourneAgainShell 是BourneShell的扩展 与BourneShell完全向下兼容 并且增加了许多特性 它还包含了很多CShell和KornShell中的优点 有灵活和强大的编程接口 同时又有很友好的用户界面 1 Shell种类 1 查看目前Shell版本 student Ubuntu echo SHELL bin bash前面已经介绍 用户默认选择的shell版本可以在 etc passwd设定 2 临时改变Shell版本为csh student Ubuntu csh csh的提示符为 退出Shell使用命令exit 2 BashBash是大多数Linux系统的默认Shell Bash有以下的优点 1 补全命令 在Bash命令提示符下输入命令或程序名时 若没有输全命令或程序名 按 Tab 键 Bash将自动补全命令或程序名 2 通配符 在Bash下可以使用通配符 和 可以替代多个字符 而 则替代一个字符 3 历史命令 Bash能自动跟踪用户每次输入的命令 并把输入的命令保存在历史列表缓冲区中 2 BashBash是大多数Linux系统的默认Shell Bash有以下的优点 4 别名 在Bash下 可用alias和unalias命令给命令或可执行程序起别名和删除别名 这样就可以用自己习惯的方式输入命令 例1 使用lm代替ls l 5 输入 输出重定向 输入重定向用于改变命令的输入 输出重定向用于改变命令的输出系统默认的输入为键盘 输出为显示器 输入 输出重定向可以改变输入输出 例2 输出重定向student Ubuntu ls dir out上面命令将ls命令的输出保存为文件dir out 若该文件存在则予以取代 student Ubuntu ls l dir out上面命令将ls命令的输出追加到文件dir out 例3 输入重定向student Ubuntu mail s test root etc passwd将 etc passwd内容邮寄给root用户 如果不用输入重定向 则要手动输入 6 管道 管道用于将一系列的命令连接起来 也就是把前面命令的输出作为后面命令的输入 管道的命令是 管道的功能和用法与DOS Windows系统的完全相同 例 catdir out grep test wc l命令演示 lastlast greprootlast greproot wc l 7 提示符 Bash有两级提示符 第一级提示符就是登录Shell时见到的 默认为 可以通过重新给PS1变量赋值来改变第一级提示符 当Bash需要进一步提示以便补全命令时 它会显示第二级提示符 第二级提示符默认为 可以通过重新给PS2变量赋值来改变第二级提示符 一些特殊意义的字符也可以加入提示符赋值中 8 作业控制 作业控制是指在一个作业执行过程中 控制执行的状态 可以挂起一个正在执行的进程 并在以后恢复执行该进程 想想 一个命令只能完成一项任务 有时我们要求做系统处理的工作较多 而且什么时候执行也不定 怎么办 采用命令的组合 命令的组合就是简单的编程过程3 shell脚本的建立和执行 1 shell脚本的建立Shell程序可以存放在文件中 这种被shell解释执行的命令文件称为shell脚本 Shell脚本程序与DOS Windows系统的 bat批处理文件极为相似 但功能远远超过 bat批处理文件 它与WindowsNT系列网络操作系统中的脚本的功能和作用类似 shell脚本可以包含任意从键盘键入的Linux命令 建立shell脚本的步骤与建立普通文本文件的方式相同 利用编辑器 如vi 进行程序录入和编辑加工 2 执行shell脚本的方式执行shell脚本的方式基本上有下述三种 1 输入重定向 即用输入重定向方式让shell从给定文件中读入命令行 并进行相应处理 其一般形式 bash 脚本名例1 执行test1 sh student Ubuntu bash test1 sh2 以脚本名作为参数 其一般形式 bash脚本名例2 执行test2 sh student Ubuntu bashtest2 sh root home student执行test2 sh带了两个参数 root home student 如果要带参数执行建议采用下面的方法设置文件可执行 2 执行shell脚本的方式执行shell脚本的方式基本上有下述三种 1 输入重定向 即用输入重定向方式让shell从给定文件中读入命令行 并进行相应处理 其一般形式 bash 脚本名例1 执行test1 sh student Ubuntu bash test1 sh2 以脚本名作为参数 其一般形式 bash脚本名例2 执行test2 sh student Ubuntu bashtest2 sh root home student执行test2 sh带了两个参数 root home student 如果要带参数执行建议采用下面的方法设置文件可执行 3 将shell脚本的权限设置为可执行 然后在提示符下直接执行它 通常 用户是不能直接执行由正文编辑器 如vi 建立的shell脚本的 因为直接编辑生成的脚本文件没有 执行 权限 如果要把shell脚本直接当作命令执行 就需要利用命令chmod将它置为有 执行 权限 例3 设置脚本 test1 sh 设置为对所有用户都有 执行 权限并执行 student Ubuntu chmoda xtest1 sh在提示符后输入脚本名 test1 sh 就可直接执行该文件 student Ubuntu test1 sh 课前回顾 Vi编辑器为什么使用vi编辑器vi编辑器三种工作状态 问题 在windos环境 一个用户一般都有自己的个性化桌面 随系统启动时的程序 如qq 等等 这些设置用户工作环境在Linux一般通过一些变量来完成 Shell环境变量在用户登录过程中系统要做的一件事就是建立用户环境 就是Shell下的控制及设置 包括文件搜索路径 用户目录和系统提示符等 Linux Shell 环境由许多变量和这些变量的值组成 通过设置这些环境变量来控制用户环境 env 显示目前系统中主要的环境变量 1 常用的环境变量1 HOME 用户主目录的全路径名 主目录是开始工作的位置 默认情况下 普通用户的主目录为 home 用户名 root用户的主目录为 root 例如 如果你的用户名为myname 则HOME的值为 home myname 不管你当前路径在哪里 都可以通过命令cd HOME返回到主目录 最简单的是cd 然后直接回车或cd 然后回车 在Linux系统中用 波浪线 表示用户的主目录 要使用环境变量或其他Shell变量 必须在变量名前加上一个 符号而不能直接使用变量名 2 LOGNAME 用户名 注册名 由Linux自动设置 系统通过与LOGNAME变量确认文件的所有者 有权执行某个命令等 3 PATH Shell从中查找命令的目录列表 它是一个非常重要的Shell变量 PATH变量包含有带冒号分界符的字符串 这些字符串指向含有你所使用命令的目录 PATH变量中的字符串顺序决定了先从哪个目录查找 PATH环境变量的功能和用法与DOS Windows系统的几乎完全相同 例如PATH PATH HOME bin 4 PS1 Shell的主提示符 既在Shell准备接受命令时显示的字符串 PS1定义你的主提示符是怎样构成的 一般设为PS1 u h W 意思是 用户名 主机名当前目录 5 PWD 你当前的工作目录的路径 它指出目前你在什么位置 6 SHELL 你当前使用的Shell和Shell放在什么位置 例如 查看用户登录系统时默认使用的Shell 最简单的方式是执行echo命令 查询系统环境变量的值 方法如下 echo SHELL bin bash 2 特殊变量在Shell中有一些变量是由系统设置好的 用户不能重新设置 1 表示命令行上参数的个数 2 表示上一条命令执行后的返回值 3 当前进程的进程号 4 表示Shell程序的所有参数串 5 表示命令行上输入的所有参数串 6 0命令行上输入的Shell程序名 演示 先将下面源代码用vi编辑器存为afile文件 bin bashecho thefileis 0 文件名echo thefirstargumentis 1 文件第一个参数echo Allargumentlist 存储所有命令行输入的参数echo Thetotalnumberofargumentis 程序中命令行参数的个数 end 为注释符号 为特殊的注释符号 它告诉操作系统使用其后面的程序来解释这个文件 设置执行chmoda xafile 执行 afileredhatlinux 输入三个参数 3 使用环境变量用echo命令查看任何一个环境变量的值 也可以在命令中将环境变量的值作为参数 使用环境变量时 要在其名称前面加上 符号 例如echo SHELL bin bashcd HOME bin 4 删除环境变量设置unsetNAME 如果NAME为一个环境变量 5 设置环境变量的文件使用BashShell时 有以下几个文件和用户的作业环境有关 1 etc profile2 etc bashrc3 etc inputrc4 HOME bash profile5 HOME bashrc6 HOME inputrc7 HOME bash login注 1 3为系统环境变量的设定 4 7为用户环境变量设定相关文件 Shell编程 Shell变量Shell程序中也采用变量 用来存放字符串 Shell变量比C语言中的变量简单得多 没有众多存储类及类型的限制 也不需要预先定义 然后才能赋值 可以在使用时 现定义 现赋值 Shell有两类变量区别 环境变量和临时变量 环境变量是永久性变量 其值不会随shell脚本执行结束而消失 而临时变量是在shell程序内部定义的 其使用范围仅限于定义它的程序 离开了本程序就不能再用它 而且当程序执行完毕 它的值也就不存在了 1 变量名用户定义的变量是最普通的shell变量 变量名是以字母或下划线打头的字母 数字和下线线序列 并且大小写字母意义不同 例如 dir与Dir是本身不同的变量 这与C语言中标识符的定义相同 变量名的长度不受限制 2 变量赋值定义变量并赋值的一般形式 变量名 字符串注意 变量赋值注意事项 在赋值语句中 赋值号 的两边没有空格 否则在执行时会引起错误 若有空格符可以使用双引号 或单引号 来将变量内容结合起来 但须要特别留意 双引号内的特殊字符可以保有变量特性 但是单引号内的特殊字符则仅为一般字符 必要时需要以跳脱字符 来将特殊符号 如 空格符等 变成一般符号 例1 变量赋值 student Ubuntu myfile root Desktop envi sh myfile 是变量名 是赋值号 字符串 root Desktop enbi sh是赋予变量myfile的值 变量的值可以改变 只需利用赋值语句重新给它赋值 例如 myfile etc apt source list此时 变量myfile的值就是 etc apt source list 例2 特殊变量赋值 student Ubuntu computer ubuntustudent 等号右边有空格 因此要用引号括起 3 引用变量值在程序中使用变量的值时 要在变量名前面加上一个符号 这个符号告诉shell 要取出其后变量的值 例 显示变量 student Ubuntu echomyfilemyfilestudent Ubuntu echo myfile root Desktop envi sh可以看到变量名前面没有加符号 认为myfile不是变量 而是一般的字符串常量 而变量名前面有加符号 则认为myfile是变量 才输出变量的值 命令替换有两种形式的命令替换 1 使用倒引号引用命令 其一般形式 命令表 在 之内的指令将会被先执行 而其执行出来的结果将做为外部的输入信息替换原来内容 例1 将路径存放到变量dir中 student Ubuntu dir lib modules uname r uname r会显示出目前的内核版本 因此用户可以先执行uname r找出内核版本 再替换 uname r 最后把整个结果赋值给dir变量 2 使用形式是 命令表 其中 命令表是用分号隔开的命令 例2 把前工作目录的全路径名存放到变量dir中 student Ubuntu dir pwd 例3 命令组合替换 student Ubuntu echo pwd cd home ls 执行上命令后首先显示当前目录 然后跳到 home目录 显示其内容 算术运算 1 算术运算例 加法运算 student Ubuntu leta 0student Ubuntu leta a 1其替代表示形式是let a a 1 或 a a 1 提示 Shell是一种弱编程语言 算术运算不算强大 一般用 a a 1 格式 执行效率较高 2 算术运算符及其优先级表中列出了部分算术运算符的优先级和结合性 优先级是由高到低的 1级最高 同级运算符在同一个表达式中出现时 其执行顺序由结合性表示 表示从左至右 表示从右至左 如果表达式中有特殊字符 必须用双引号将其括起来 如 let v a b 而letv a b是无法正确执行的 Shell编程条件测试条件语句循环语句函数 条件测试 1 条件测试用test命令进行条件测试 格式为testexpression或 expression 例1 字符串测试 student Ubuntu test6 7student Ubuntu echo 1注意等号操作符两边都要空格 特殊变量 表示上一条命令执行后的返回值 如果返回值其值为假 返回1 如果返回值其值为真 返回0 student Ubuntu 6 6 student Ubuntu echo 0改用中括号形式 注意等号操作符两边和中括号内侧都要的空格 test命令可以和多种系统运算符一起使用 这些运算符可以分为4类 整数运算符 字符串运算符 文件运算符和逻辑运算符 1 数值运算符 用来判断数值表达式的真假 int1 eqint2如果int1 int2 则为真 int1 geint2如果int1 int2 则为真 int1 gtint2如果int1 int2 则为真 int1 leint2如果int1 int2 则为真 int1 ltint2如果int1 int2 则为真 int1 neint2如果int1 int2 则为真 test命令可以和多种系统运算符一起使用 这些运算符可以分为4类 整数运算符 字符串运算符 文件运算符和逻辑运算符 2 字符串运算符 用来判断字符串表达式的真假 str1 str2如果str1和str2相同 则为真 str1 str2如果str1和str2不相同 则为真 str如果str不为空 则为真 nstr如果str的长度大于零 则为真 zstr如果str的长度等于零 则为真 test命令可以和多种系统运算符一起使用 这些运算符可以分为4类 整数运算符 字符串运算符 文件运算符和逻辑运算符 3 文件运算符 用来判断文件是否存在 类型及属性 dfilename如果filename为目录 则为真 ffilename如果filename为普通的文件 则为真 rfilename如果filename为只读 则为真 sfilename如果filename的长度大于零 则为真 wfilename如果filename为可写 则为真 xfilename如果filename为可执行 则为真 例2 判断 etc是否为目录 student Ubuntu d etc student Ubuntu echo 0判断用户对目录 etc是否有写的权限 student Ubuntu w etc 4 逻辑运算符 用来结合表达式或取得表达式相反值 expr如果expr为假 则返回真 expr1 aexpr2如果expr1和expr2同时为真 则返回真 expr1 oexpr2如果expr1或expr2有一个为真 则返回真 例3 判断文件存在且具有可写的权限 student Ubuntu f etc passwd a w etc passwd 问题 在生活中经常遇到选择 如 成绩大于60算及格等 计算机怎样处理选择问题呢 条件语句Shell具有一般高级语言所具有的控制结构 如if语句 case语句 1 if语句if语句可根据表达式的值是真或假来决定要执行的程序段落 最常用的if语句结构是if then elseif then else if 如下 上面的意思是这这样的 在中刮号 里面的是条件测试语句 如果是复合式的条件判断 如若A及B则C之类的逻辑判断 那么就需要在两个中刮号之间加上 与 或者是 或 这样的逻辑表达式才行 如果是多重选择的话 那么就需要以elif optional 选择性的 若有需要才加上 来新增另一个条件 如果所有的条件都不适用 则使用else optional 来进行最后的执行内容 例1 判断Shell的版本是否是 bin bash bin shif SHELL bin bash 变量 SHELL包含了登录shell的名称thenecho yourloginshellisthebash bourneagainshell elseecho yourloginshellisnotbashbut SHELL fi end 例2 在键盘上读取一个字符 然后根据字符的值来判断对错 bin bashecho n Pleaseinputtheanswer n不换行readInpute 从键盘读入数据if Input y thenecho Theanswerisright elif Input n thenecho Theansweriswrong elseecho BadInput fi end如果要从键盘一次读入多个变量 使用语句readvar1var2 变量之间用空格隔开 例3 从键盘一次读入多个变量 用语句readvar1var2 变量之间用空格隔开 readnamegender 读入两个变量echo nameecho gender假如在键盘输入linuxman 则上边的语句执行的结果为linux 变量name的值man 变量gender的值如果输入文本过长 Shell将所有的超长的部分赋给最后一个变量 2 case语句前面的if语句是以程序来自行判断执行 那么如果用户已经规划好几个项目类型 只要选择执行的相应类型程序就可以正确的执行 要怎么做呢 这种情况使用case语句就最为方便 2 case语句变量string可以是一般变量 也可以是特殊变量 比如 1 一般变量要使用read命令从键盘接收数据 测试条件可以使用通配符 双分号 为测试条件的结束 在每一个测试条件成立后 一直到双分号之前的命令 都会被shell执行 由于所有的字符串都可以与通配符 搭配 因此 之后的命令可以视为case语句默认的执行命令 case语句用来从上到下的从测试条件中选择符合的条件执行 执行完测试条件后的命令就直接退出case条件语句 在接着往下执行 例 依照用户的选择决定程序执行 1 使用Vi编辑器编辑以下程序 保存文件为testcase sh 2 设置testcase sh为可执行 student Ubuntu chmoda xtestcase s 3 执行testcase sh student Ubuntu testcase sh 不带参数执行 Thisprogramwillprintyourselection Usage one two three student Ubuntu testcase shtwo 带参数two执行 Thisprogramwillprintyourselection yourchoiceistwo 循环语句在程序当中 最常使用到的就是循环语句 循环是很重要的一项工具 Shell中提供了几种执行循环的命令 比较常见的命令有for while until shift命令 1 for语句for语句有多种格式 也是比较灵活的一种循环语句 1 计算1 2 3 100的和 编辑程序并保存为文件testfor1 sh 程序说明 这个程序采用的是for语句的 for 条件1 条件2 条件3 格式 其中 条件1 这是变量 初始值 如上面的例子中 初始值是i 1 条件2 这是变量 允许值 如上面的例子中 当i 100的时候都是符合条件的 条件3 这是变量 步长 如上面的例子中 每循环一次 i都加1 其中do与done就是for循环语句的 循环体 for语句每循环一次都执行do与done之间的程序段一次 总之 上面的例子是说 由i 1开始到i100 也就是i 101 就跳出for循环语句接着往下执行 执行结果如下 student Ubuntu bashtestfor1 shThecountis5050 2 把列表中的几个值显示出来 bin bashforpin12345doecho pdone end这是采用的是for语句另外一种格式 forvarinlistdocommandsdone 使用这种形式时 对在list中的每一项 for语句都执行一次 list是可以包括几个单词并且用空格分开的变量 也可以是几个直接输入的值 没执行一次变量var都被赋予list中的当前值 一直到最后一个 for的in字句与case的字句相同 也可以使用通配符 例 使用通配符显示当前目录下所有文本文件 txt 的名称和内容 bin bashforfilein sh 对目录下的每个txt文件doecho file 显示文件名cat file 显示文件内容done end 2 while及until语句while语句与until语句的语法结构和用途相似 while语句会在测试条件为真时循环执行 语法如下 whileexpressiondocommandsdone而until语句会在其测试条件为假时循环执行 语法为untilexpressiondocommand
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防汛抢险知识培训总结课件
- GB7718食品安全国家标准预包装食品标签通则
- 语文19记念刘和珍君
- 防控疫情知识培训会课件
- 股权回购协议(公司回购股东股权)2篇
- 防处邪教知识培训内容课件
- 无偿装修学校书法室协议书6篇
- 实时市场动态监测-洞察及研究
- 天津市南开区第二十五中学2024-2025学年七年级上学期第一次月考英语试卷(含笔试答案无听力答案、原文及音频)
- 河南省周口市等2地2025-2026学年高三上学期开学考试语文试题(含答案)
- 产科常用药物观察及不良反应
- 仓库发错货的解决方案
- 金属冶炼安全事故案例与分析
- 动物诊疗机构报告登记表
- 南京市2023-2024高一上学期期末英语试卷及答案
- 非法人经营授权书饿了么
- 了解胃肠肿瘤
- 2023年产科手术分级及安全核查培训考试试题
- 数字孪生及车间实践第三篇数字孪生车间
- 时间像小马车课件
- 2022-CSP-J入门级第一轮试题答案与解析
评论
0/150
提交评论