电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验五、Shell脚本程序编制实验

11页
  • 卖家[上传人]:s9****2
  • 文档编号:478617098
  • 上传时间:2023-09-12
  • 文档格式:DOCX
  • 文档大小:26.24KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、实验五Shell脚本程序编制实验 编写一个Shell命令脚本程序的基本步骤如下:(1)编辑包含用户命令脚本程序的文本文件(2)添加 Shell 定义语句,使 Linux 操作系统可以知道用户使用哪一种 Shell (3)编写Shell命令脚本程序内容 (4)保存脚本程序并退出。用“chmod +x ”命令改变该脚本程序的存取权限和执行 权限,使其可以被适当的用户使用。 (5)运用该命令脚本程序以进行测试 (6)如有必要,可进行程序纠错。 ( 7 )如有必要,可把完整的命令脚本程序移动到相应位置(8)如有必要,可在path语句中加上此脚本的路径练习:编写书本P107welcome Shell脚本程序运行脚本程序的三种方法:a. bash 脚本文件名b. bash ”。练习:使用 echo 显示上述环境变量内容注意: PS1 提示符设定标记: d 日期H 完整主机名h 主机名第一段t 24小时时间T 12小时时间u 用户名 V Bash 版本信息w 完整的工作路径W 最后一层目录名# 下达的第几个命令 $提示符(root $,普通用户#)练习:输入以下命令,思考设置PS1环境变量的作用PS

      2、1=u-w(#)$PS1=uh W$定义变量 格式:变量名=变量值引用变量 $变量名只读变量 readonly 变量名export命令对已定义的变量进行输出,使变量可被子shel 1使用位置参数 位置参数是一种在调用 Shell 程序的命令行中按照各自的位置决定的变量,是在 程序名之后输入的参数。位置参数之间用空格分隔。所有预定义变量都是由$符和另一个符号组成的,常用的shell预定义变量有: $#:位置参数的数量 $*:所有位置参数的内容 $?:命令执行后返回的状态 $:当前进程的进程号 $!:后台运行的最后一个进程号 $0:当前执行的进程名练习编写一个Shell脚本testenvv.sh如下,思考各位置参数的含义:#!/bin/bashecho $#: $#echo $*echo $?:, $?echo $: $echo $!:, $!echo $0: $0echo $1:, $1保存后,执行该脚本,例如: bash testenvv.sh a b c参数置换的变量shell 提供了参数置换能力以便用户可以根据不同的条件来给变量赋不同的值。参数置换的 变量有四种,这些变量通常与某一

      3、个位置参数相联系,根据指定的位置参数是否已经设置类 决定变量的取值,它们的语法和功能分别如下。 a.变量=$参数-word:如果设置了参数,则用参数的值置换变量的值,否则用word 置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于 word 的值。 b.变量=$参数=word:如果设置了参数,贝I用参数的值置换变量的值,否则把变 量设置成 word 然后再用 word 替换参数的值。注意,位置参数不能用于这种方式,因为在shell程序中不能为位置参数赋值。 c.变量=$参数? word:如果设置了参数,则用参数的值置换变量的值,否则就 显示word并从shell中退出,如果省略了 word,则显示标准信息。这种变量要求一定等于某一个参数的值,如果该参数没有设置,就显示一个信 息,然后退出,因此这种方式常用于出错指示。 d.变量=$参数+word:如果设置了参数,则用word置换变量,否则不进行置换。所有这四种形式中的“参数”既可以是位置参数,也可以是另一个变量,只是用位置 参数的情况比较多。练习:编写一个 Shell 脚本 testpr.sh 如下,思考各种参数

      4、置换的功能:#! /bin/bashv3=”3”1v4=”4”echo ”v1:$v1 v2:$v2 v3:$v3 v4:$v4”p1=$v1-“1”p2=$v2=”v2”p3=$v3?”no value in v3”p4=$v4+”r4”echo ”p1:$p1 p2:$p2 p3:$p3 p4:$p4”试着删除标注#1的行,保存后运行,结果会有何不同?expr 命令求值(一般用于整数或字符串)-参数应用规则:*用空格隔开每个项;(每个项都是命令行参数)*用 (反斜杠) 放在 shell 特定的字符前面; *对包含空格和其他特殊字符的字符串要用引号括起来 练习:(1)、计算字串长度expr length “this is a test”(2)、抓取字串expr substr “this is a test” 3 5(3)、获取第一个字符出现的位置expr index “sarasara” a(4)、整数运算expr 14 % 9expr 10 + 10expr 1000 + 900expr 30 / 3 / 2expr 30 * 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为sh

      5、ell可能会误解显示星号 的意义)shell 数值计算算术扩展语法:$(算术表达式),注意:表达式中若有变量,该变量名称之前最好不要加上$这 个符号练习:j=10echo $(j*4)echo $(j*4/3)echo $(+j)echo $(-j)echo $(4+j-)echo $jecho $(2*5) #2 的 5 次方使用$做算术运算和()类似 练习:echo $4+5echo $4-5echo $4*5echo $22/5 r=$100%43echo $r*2Shell 程序设计的流程控制命令的结束状态,bash shell脚本程序可由许多命令组成,每一个命令执行后,都会传回一 个结束状态值,若执行成功,传回0如果执行失败,则传回非0值。bash的内置变量$?,用来存储每个命令执行后传回的状态值。bash 流程控制需要进行条件测试,就是以结束状态作为真假值的判断依据,如果结束状态 为 0,则判断为真,其它值判断为假。test是Shell程序中的一个表达式(注意:test内置命令/usr/bin/ ), test命令用于检查某个条 件是否成立,它可以进行字符、数值和文件三个方

      6、面的测试 。字符串测试常用的字符串比较符号如下。=:比较两个字符串是否相同,相同则为“是”。!=:比较两个字符串是否不相同,不同则为“是”。-n:比较字符串的长度是否大于0如果大于0则为“是”。-z:比较字符串的长度是否等于0,如果等于0则为“是”。练习:str1=” #字符串为空串test $str1echo $?str1=” “ #字符串含一个空格test $str1echo $?test “$str1”echo $? #仔细思考上述命令结果的不同 str1=abcd test $str1 = abcd echo $?test $str1 = abcdeecho $?test -n $strlecho $?test -z $strlecho $?常用的数字比较符号如下。-eq:相等。-ge:大于等于。-le:小于等于。-ne:不等于。-gt:大于。-lt:小于。练习:il=l234i2=3456 $il -eq $i2 #注意各参数之间的空格echo $? $il -ne $i2 echo $? $il -lt $i2 echo $?文件测试表达式通常是为了测试文件的文件操作逻辑,

      7、测试符号如下。 -d :对象存在且为目录,则返回值为“是”。-f:对象存在且为文件,则返回值为“是”。-L:对象存在且为符号连接,则返回值为“是”。-r:对象存在且可读,则返回值为“是”。-w:对象存在且可写,则返回值为“是”。-x :对象存在且可执行,则返回值为“是”。-s:对象存在且长度非0则返回值为“是”。 !:测试条件的否定。练习:mkdir ex7cd ex7touch aln -s a b -d a echo $? ! -d a echo $? -f a echo $? -r a echo $? -L a echo $? -L b echo $?常用的逻辑测试符号如下。!:与一个逻辑值相反的逻辑值。-a与(and):两个逻辑值都为“是”返回值才为“是”,反之为“否”。-o或(or):两个逻辑值有一个为“是”,返回值就为“是”。bash 的一些内部命令常用的内部命令有: echo、eval、exec、export、readonly、read、shift、wait 和点(.)。下面简 单介绍其命令格式和功能。1. echo命令格式: echo arg 功能:在屏幕上打印出由 arg 指定的字符串。2. eval 命令格式: eval args功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令, 然后执行。例:cmd=“ps a”eval $cmdcmd=ls para=-h eval $cmd $para3. exec命令格式: exec 命令 命令参数功能:当 shell 执行到 exec 语句时,不会去创建新的子进程,而是转去执行指定的命令,当 指定的命令执行完时,该进程,也就是最初的 shell 就终止了,所以 shell 程序中 exec 后面 的语句将不再被执行。4. export命令格式: export 变量名 或: export 变量名=变量值功能:shell可以用export把它的变量向下带入子shell从而让子进程继承父进程中的环境变 量。但子shell不能用export把它的变量向上带入父shell。注意:不带任何变量名的export语句将显示出当前所有的export变量。5. readonly命令格式: readonly 变量名功能:将一个用户定义的 shell 变量标识为不可变的

      《实验五、Shell脚本程序编制实验》由会员s9****2分享,可在线阅读,更多相关《实验五、Shell脚本程序编制实验》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.