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

shell脚本学习教程

14页
  • 卖家[上传人]:第***
  • 文档编号:32696939
  • 上传时间:2018-02-12
  • 文档格式:DOCX
  • 文档大小:45.19KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1 Shell 编程1.1 Shell 命令行书写规则执行 Shell 命令时多个命令可以在一个命令行上运行,用分号(;)分隔命令,例如:rootlocalhost root# ls a* -l;free;df长 Shell 命令行可以使用反斜线字符()在命令行上扩充,例如:rootlocalhost root# echo “this is long command”This is long command“”符号是自动产生的,而不是输入的。1.2 编写/修改权限及执行 Shell 程序的步骤1.2.1 编辑 Shell 程序编辑一个内容如下的源程序,保存文件名为 date,可将其存放在目录/bin 下。rootlocalhost bin#vi date#! /bin/shecho “Mr.$USER,Today is:”echo &date “+%B%d%A”echo “Wish you a lucky day !”注意:#! /bin/sh 通知采用 Bash 解释。如果在 echo 语句中执行 Shell 命令 date,则需要在date 命令前加符号“&” ,其中%B%d%A

      2、为输入格式控制符。1.2.2 建立可执行程序编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令。rootlocalhost bin#chmod +x date1.2.3 执行 Shell 程序执行 Shell 程序有下面三种方法:方法一:rootlocalhost bin#./ date方法三:为了在任何目录都可以编译和执行 Shell 所编写的程序,即把/bin 的这个目录添加到整个环境变量中。rootlocalhost root#export PATH=/bin:$PATH1.3 在 Shell 程序中使用的参数Shell 程序中的参数分为位置参数和内部参数等。1.3.1 位置参数由系统提供的参数称为位置参数。位置参数的值可以用$N 得到,N 是一个数字,如果为1,即$1。Linux 会把输入的命令字符串分段并给每段进行标号,标号从 0 开始。第 0 号为程序名字,从 1 开始就表示传递给程序的参数。如$0 表示程序的名字,$1 表示传递给程序的第一个参数,以此类推。1.3.2 内部参数上述过程中的$0 是一个内部变量,它是必须的,而$1 则可有可无,最常

      3、用的内部变量有$0、$#、$?、$*,它们的含义如下。 $0:命令所在的路径。 $#:传递给程序的总的参数数目。 $?:Shell 程序在 Shell 中退出的情况,正常退出返回 0,反之为非 0 值。 $*:传递给程序的所有参数组成的字符串。实例 12-2:编写一个 Shell 程序,用于描述 Shell 程序中的位置参数为:$0、$#、$?、$*,程序名为 test1,代码如下:rootlocalhost bin#vi test1#! /bin/shecho “Program name is $0”;echo “There are totally $# parameters passed to this program”;echo “The last is $?”;echo “The parameter are $*”;执行后的结果如下:rootlocalhost bin# test1 this is a test program /传递 5 个参数Program name is /bin/test1 /给出程序的完整路径和名字There are totally 5 paramet

      4、ers passed to this program /参数的总数The last is 0 /程序执行效果The parameters are this is a test program /返回由参数组成的字符串注意:命令不计算在参数内。实例 12-3:利用内部变量和位置参数编写一个名为 test2 的简单删除程序,如删除的文件名为a,则在终端中输入的命令为:test a分析:除命令外至少还有一个位置参数,即$#不能为 0,删除不能为$1,程序设计过程如下。(1) 用 vi 编辑程序rootlocalhost bin#vi test2#! /bin/shif test $# -eq 0thenecho “Please specify a file!”elsegzip $1 /现对文件进行压缩mv $1.gz $HOME/dustbin /移动到回收站echo “File $1 is deleted !” fi(2) 设置权限rootlocalhost bin#chmod +x test2(3) 运行rootlocalhost bin# test2 a (如果 a 文件在 bin 目

      5、录下存在)File a is deleted!1.4 在 Shell 程序中的使用变量1.4.1 变量的赋值在 Shell 编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明。要赋值给一个变量,其格式如下:变量名=值等号(=)前后没有空格例如:x=6a=”How are you ”1.4.2 访问变量值如果要访问变量值,可以在变量前面加一个美元符号“$” ,例如:rootlocalhost bin#a=”How are you ”rootlocalhost bin#echo “He juest said:$a”A is:hello world一个变量给另一个变量赋值可以写成:变量 2=$变量 1例如:x=$ii+可以写成:i=$i+11.4.3 键盘读入变量值在 Shell 程序设计中,变量的值可以作为字符串从键盘读入,其格式为:read 变量例如:rootlocalhost bin#read strread 为读入命令,它表示从键盘读入字符串到 str。实例 12-4:编写一个 Shell 程序 test3,程序执行时从键盘读入一个目录名,然后显示这个目录下所有文件的信息。

      6、分析:存放目录的变量为 DIRECTORY,其读入语句为:read DIRECTORY显示文件的信息命令为:ls a rootlocalhost bin#vi test3#! /bin/shecho “please input name of directory”read DIRECTORYcd $DIRECTORYls l(2)设置权限rootlocalhost bin#chmod +x test3(3)执行rootlocalhost bin#./test3输入路径时需“/”实例 12-5:运行程序 test4,从键盘读入 x、y 的值,然后做加法运算,最后输出结果。(1)用 vi 编辑程序rootlocalhost bin#vi test4#! /bin/shecho “please input x y”read x,yz=expr $x+$yecho “The sum is $z”(2)设置权限rootlocalhost bin#chmod +x test4(3)执行rootlocalhost bin#./ test445 78The sum is 123表达式 total=ex

      7、pr $total +$num及 num=expr $num +1中的符号“”为键盘左上角的“”键。1.5 表达式的比较在 Shell 程序中,通常使用表达式比较来完成逻辑任务。表达式所代表的操作符有字符操作符、数字操作符、逻辑操作符、以及文件操作符。其中文件操作符是一种 Shell 所独特的操作符。因为 Shell 里的变量都是字符串,为了达到对文件进行操作的目的,于是才提供了文件操作符。1.5.1 12-5-1 字符串比较作用:测试字符串是否相等、长度是否为零,字符串是否为 NULL。常用的字符串操作符如表 12-1 所示.。表 12-1 常用的字符串操作符字符串操作符 含义及返回值= 比较两个字符串是否相同,相同则为“真”!= 比较两个字符串是否不相同,不同则为“真”-n 比较两个字符串长度是否大于零,若大于零则为“真”-z 比较两个字符串长度是否等于零,若等于零则为“真”实例 12-6:从键盘输入两个字符串,判断这两个字符串是否相等,如相等输出。(1)用 vi 编辑程序rootlocalhost bin#vi test5#! /bin/Bashread ar1read ar2

      8、“$ar1” = “$ar2” echo $? #?保存前一个命令的返回码(2)设置权限rootlocalhost bin#chmod +x test5(3)执行rootlocalhost root#./ test5aaabbb1”后面和”前面及等号“=“的前后都应有一个空格;注意这里是程序的退出情况,如果 ar1 和 ar2 的字符串是不想等的非正常退出,输出结果为 1。实例 12-7: 比较字符串长度是否大于零(1)用 vi 编辑程序rootlocalhost bin#vi test6#! /bin/Bashread ar -n “$ar” echo $? /保存前一个命令的返回码(2)设置权限rootlocalhost bin#chmod +x test6(3)执行rootlocalhost bin#./ test60运行结果 1 表示 ar 的小于等于零,0 表示 ar 的长度大于零。1.5.2 数字比较在 Bash Shell 编程中的关系运算有别于其他编程语言,用表 12-2 中的运算符用 test 语句表示大小的比较。表 12-2 用 test 比较的运算符运算符号 含

      9、义-eq 相等-ge 大于等于-le 小于等于-ne 不等于-gt 大于-lt 小于实例 12-8:比较两个数字是否相等(1)用 vi 编辑程序rootlocalhost bin#vi test7#! /bin/Bashread x,yif test $x eq $ythenecho “$x=$y”elseecho “$x!=$y”fi(2)设置权限rootlocalhost bin#chmod +x test7(3)执行rootlocalhost bin#./ test750 10050!=100rootlocalhost bin#./ test7150 150150= =1501.5.3 逻辑操作在 Shell 程序设计中的逻辑运算符如表 12-3 所示。12-3 Shell 中的逻辑运算符运算符号 含 义! 反:与一个逻辑值相反的逻辑值-a 与(and):两个逻辑值为“是”返回值为“是”,反之为“否”-o 或(or): 两个逻辑值有一个为“是”,返回值就是“是”实例 12-9:分别给两个字符变量赋值,一个变量赋予一定的值,另一个变量为空,求两者的与、或操作。(1)用 vi 编辑程序rootlocalhost bin#vi test8#! /bin/Bashpart1 =”1111”part2 =” ” #par

      《shell脚本学习教程》由会员第***分享,可在线阅读,更多相关《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.