通信软件开发应用实训2第一次_第1页
通信软件开发应用实训2第一次_第2页
通信软件开发应用实训2第一次_第3页
通信软件开发应用实训2第一次_第4页
通信软件开发应用实训2第一次_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信软件开发应用

实训基础命令练习shell编程练习makefile文件编写练习autoconf使用练习gdb使用练习Linux系统及编程基础Linux编程基本操作练习*21.运用命令显示出自己所安装UBUNTU的linux内核版本号;2.在根目录下建立一个名为text的文件夹并且在该文件夹内建立一个名为text文本文件,在文本文件中写入内容并且打印出来,再想文件追加内容并且打印出来;

3.利用man命令查看ls的用法,并且显示目录/usr下的所有文件和子目录的信息Linux系统及编程基础Linux编程基本操作练习基础命令练习*34.在根目录下建立一个名为text2的文件夹并且将题目2中text拷贝到该目录,并且改名为text2;5.体验ln、cp、mv操作,说明一下该三条指令之间的区别;6.将text2的文件夹中的text2设置成只有所有者可以读、写和执行,而设置群组只能读取;Linux系统及编程基础Linux编程基本操作练习基础命令练习*47.在自己的主目录下创建一个新目录mydir,其权限为:只有所有者可以读、写和执行,而群组只能读写,其他用户只能读;8.删除/text、/text2、/mydir;Linux系统及编程基础Linux编程基本操作练习基础命令练习*5uname–r;2. mkdir/text; touch/text/text;echo“hello”>/text/text;cat/text/text;echo“world”>>/text/text;cat/text/text;3. manls;ls–al/usr;4. mkdir/text2;cp–i/text/text/text2/;mvtexttext2;Linux系统及编程基础Linux编程基本操作练习基础命令练习*65.ln:是link的简写,从字面可以看出,这个命令就是创建链接;cp:就是copy的简写,从字面可以看出,这个命令就是复制,拷贝;mv:就是move的简写,从字面可以看出,这个命令就是移动文件/重命名文件;chmod640text2;mkdir-m764/mydir;rm–rf/text/text2/mydir;Linux系统及编程基础Linux编程基本操作练习基础命令练习*7例1-1:从键盘读入两个字符串,判断这两个字符串是否相等,如相等输出。例1-2:比较字符串长度是否大于零。例2-1:比较两个数字是否相等。例2-2:求两个键盘输入整数的和。Linux系统及编程基础Linux编程基本操作练习shell编程练习*8例3:一个变量赋予一定的值,另一个为空,求两者的与、或。例4-1:判断zb目录是否存在/root下。例4-2输入一个字符串,如果是目录,则显示目录下的信息,如为文件显示文件的内容。Linux系统及编程基础Linux编程基本操作练习shell编程练习*9例5-1在列表中的值:a,b,c,e,i,2,4,6,8用循环的方式把字符与数字分成两行输出。例5-2:删除垃圾箱中的所有文件分析:在本机中拉圾箱的位置在$HOME/.Trash中,因而是删除$HOME/.Trash列表中的所有文件.例5-3:求从1到100的和。例6:用while循环求1到100的和。Linux系统及编程基础Linux编程基本操作练习shell编程练习*10例7:用until循环求1到100的和。例8:用for循环输出1到10间的奇数。例9:Linux是一个多用户操作系统,编写一程序根据不同的用户登录输出不同的反馈结果。Linux系统及编程基础Linux编程基本操作练习shell编程练习*11例10-1:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果。例10-2:在shell脚本test17中调用test18。Linux系统及编程基础Linux编程基本操作练习shell编程练习*12【Shell变量】变量可以定制用户本身的工作环境,使用变量可以保存有用信息,使系统获知用户相关设置,也用于保存暂时信息;变量一般都用大写字母表示;使用echo命令可以显示单个变量的取值,要在变量名前面加$,如:Linux系统及编程基础Linux系统基础Shell编程*13USER=“haison”echo$USER【Shell变量】如果设置变量时,不想再改变其值,可以将其设置为只读,只要在变量名前加readonly使用set命令可以显示所有本地定义的shell变量使用unset变量名可以清除对变量的定义Linux系统及编程基础Linux系统基础Shell编程*14【Shell变量】环境变量:是系统的一部分,不必去定义它们。可以在shell程序中是使用它们,某些变量(PATH)还能在shell程序中加以修改。内部变量:是由系统提供的。与环境变量不同,不能修改它们。用户变量:是在编写shell过程中定义的。可以在shell程序中任意修改它们。位置变量:$0(脚本名),$1-$9:脚本参数。和其他编程语言的重要不同是:shell编程过程中的变量是非类型性质的,也就是说不必指定变量是数字还是字符串。Linux系统及编程基础Linux系统基础Shell编程*15【Shell变量】环境变量shell开始执行时定义的与系统工作环境有关的变量HOME:用户主目录的绝对路径名PATH:命令的搜索路径PS1(PS2):一(二)级提示符PWD:当前目录的绝对路径名LOGNAME:你的注册名SHELL:当前使用的shellTERM:你的终端类型访问环境变量$环境变量名删除环境变量unset环境变量名Linux系统及编程基础Linux系统基础Shell编程*16【Shell变量】内部变量shell开始执行定义的用户不能重新的变量$#传递给程序的总的参数数目$?上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。$*传递给程序的所有参数组成的字符串。$-在Shell启动或使用set命令时提供选项$?上一条命令执行后返回的值$$当前shell的进程号$!上一个子进程的进程号$@所有的参数,每个都用双括号括起$0当前shell名Linux系统及编程基础Linux系统基础Shell编程*17【Shell变量】用户变量变量名一般都是由大写字母组成的;变量的赋值varname=value注:等号两边不能有空格;若value本身包含空格,需用双引号将字符串括起来设置一个变量只读readonlyvarname访问变量值$varname输出变量值echo$varname从键盘读取变量输入值readvarnameLinux系统及编程基础Linux系统基础Shell编程*18【Shell变量】位置变量命令行:命令名参数1参数2参数3......位置变量:$0$1$2$3......$9由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字;Linux会把输入的命令字符串分段并给每段进行标号标号从0开始Linux系统及编程基础Linux系统基础Shell编程*19【表达式的比较】字符串比较作用:测试字符串是否相等、长度是否为零,字符串是否为NULL。常用的字符串操作符:Linux系统及编程基础Linux系统基础Shell编程*20【表达式的比较】字符串比较例1:从键盘读入两个字符串,判断这两个字符串是否相等,如相等输出。(1)用vi编辑程序[root@localhostbin]#vitest4#!/bin/bashreadar1readar2["$ar1"="$ar2"]echo$?#保存前一个命令的返回码(2)设置权限:

[root@localhostbin]#chmod+xtest4(3)执行:[root@localhostroot]#./test4aaabbb1Linux系统及编程基础Linux系统基础Shell编程*21注意:“[”后面和“]”前面及等号“=”的前后都应有一空格;【表达式的比较】字符串比较例2:

比较字符串长度是否大于零。(1)用vi编辑程序[root@localhostbin]#vitest5#!/bin/bashreadar[-n"$ar"]echo$?#保存前一个命令的返回码(2)设置权限:[root@localhostbin]#chmod+xtest5(3)执行:[root@localhostroot]#./test50Linux系统及编程基础Linux系统基础Shell编程*22注意:运行结果1表示ar的小于等于零,0表示ar的长度大于零。【表达式的比较】数字比较在bashshell编程中的关系运算有别于其他编程语言。Linux系统及编程基础Linux系统基础Shell编程*23【表达式的比较】数字比较例3:比较两个数字是否相等。(1)用vi编辑程序[root@localhostbin]#vitest6#!/bin/bashreadxyiftest$x-eq$ythenecho“$x==$y”elseecho“$x!=$y”fiLinux系统及编程基础Linux系统基础Shell编程*24(2)设置权限:

[root@localhostbin]#chmod+xtest6(3)执行:[root@localhostbin]#./test65010050!=100[root@localhostbin]#./test6150150150==150【表达式的比较】逻辑操作逻辑运算符号:Linux系统及编程基础Linux系统基础Shell编程*25【表达式的比较】逻辑操作例4:

一个变量赋予一定的值,另一个为空,求两者的与、或。(1)用vi编辑程序[root@localhostbin]#vitest7#!/bin/bashpart1="1111"part2=""#part2为空

["$part1"-a"$part2"]echo$?#保存前一个命令的返回码

["$part1"-o"$part2"]echo$?(2)设置权限:

[root@localhostbin]#chmod+xtest7(3)执行:[root@localhostbin]#./test710Linux系统及编程基础Linux系统基础Shell编程*26【表达式的比较】文件操作文件测试表达式通常是为了测试文件的信息,一般由脚本来决定文件是否应该备份、复制或删除。常用操作符:Linux系统及编程基础Linux系统基础Shell编程*27【表达式的比较】文件操作例5:

判断zb目录是否存在/root下。(1)用vi编辑程序[root@localhostbin]#vitest8#!/bin/bash[-d/root/zb]echo$?#保存前一个命令的返回码(2)设置权限:[root@localhostbin]#chmod+xtest8(3)执行:[root@localhostbint]#./test81(4)在/root添加zb目录

[root@localhostbin]#mkdirzb(5)执行:[root@localhostbin]#./test80Linux系统及编程基础Linux系统基础Shell编程*28注意:运行结果1表示判断的目录不存在,0表示判断的目录存在。【表达式的比较】文件操作例6输入一个字符串,如果是目录,则显示目录下的信息,如为文件显示文件的内容。[root@localhostbin]#vitest9#!/bin/bashecho“Pleaseenterthedirectorynameorfilename”readDORFif[-d$DORF]thenls$DORFelif[-f$DORF]thencat$DORFelseecho“inputerror!”fiLinux系统及编程基础Linux系统基础Shell编程*29【循环结构语句】1.for循环语法:for变量in列表

do

操作

done变量是要在循环内部用来指代列表中的对象。列表是在for循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。Linux系统及编程基础Linux系统基础Shell编程*30【循环结构语句】for循环例7在列表中的值:a,b,c,e,i,2,4,6,8用循环的方式把字符与数字分成两行输出。(1)用gedit编辑脚本程序test4[root@localhostroot]#gedittest9#!/bin/shforiina,b,c,e,i2,4,6,8doecho$idone(2)设置权限:[root@localhostbin]#chmod+xtest9(3)执行:[root@localhostbin]#./test9a,b,c,e,i2,4,6,8Linux系统及编程基础Linux系统基础Shell编程*31注意:在循环列表中的空格可表示换行。【循环结构语句】for循环例8:删除垃圾箱中的所有文件分析:在本机中拉圾箱的位置在$HOME/.Trash中,因而是删除$HOME/.Trash列表中的所有文件,程序脚本如下:(1)用gedit编辑脚本程序test10[root@localhostbin]#gedittest10#!/bin/shforiin$HOME/.Trash/*dorm$iecho"$ihasbeendeleted!"done(2)设置权限:[root@localhostbin]#chmod+xtest10(3)执行:[root@localhostbin]#./test10/root/.Trash/abc~hasbeendeleted!/root/.Trash/abc1hasbeendeleted!Linux系统及编程基础Linux系统基础Shell编程*32【循环结构语句】for循环例9:求从1到100的和。(1)用gedit编辑脚本程序test11[root@localhostbin]#gedittest11#!/bin/shtotal=0for((j=1;j<=100;j++));dototal=`expr$total+$j`doneecho"Theresultis$total"(2)设置权限:[root@localhostbin]#chmod+xtest11(3)执行:[root@localhostbin]#./test11Theresultis5050Linux系统及编程基础Linux系统基础Shell编程*33注意:for语句中的双括号不能省,最后的分号可有可无,表达式total=`expr$total+$j`的加号两边的空格不能省,否则会成为字符串的连接。【循环结构语句】2.while循环语法:while表达式

do

操作

done只要while表达式为真,do和done之间的操作就一直会进行。Linux系统及编程基础Linux系统基础Shell编程*34【循环结构语句】while循环例10:用while循环求1到100的和。

(1)用gedit编辑脚本程序test12[root@localhostbin]#gedittest12total=0num=0while((num<=100));dototal=`expr$total+$num((num+=1))doneecho"Theresultis$total"(2)设置权限:

[root@localhostbin]#chmod+xtest12(3)执行:[root@localhostbin]#./test12Theresultis5050Linux系统及编程基础Linux系统基础Shell编程*35【循环结构语句】3.until循环语法:until表达式do操作done重复do和done之间的操作直到表达式成立为止。Linux系统及编程基础Linux系统基础Shell编程*36【循环结构语句】until循环例11:用until循环求1到100的和。(1)用gedit编辑脚本程序test13[root@localhostbin]#gedittest13total=0num=0until[$num-gt100]dototal=`expr$total+$num`num=`expr$num+1`doneecho"Theresultis$total"(2)设置权限:

[root@localhostbin]#chmod+xtest13(3)执行:[root@localhostbin]#./test13Theresultis5050Linux系统及编程基础Linux系统基础Shell编程*37【条件结构语句】1.if语句语法:if表达式1then操作elif表达式2then操作elif表达式3then操作…else操作fiLinux里的if的结束标志是将if反过来写成fi;而elif其实是elseif的缩写其中elif理论上可以有无限多个。Linux系统及编程基础Linux系统基础Shell编程*38【条件结构语句】if语句例12:用for循环输出1到10间的奇数。(1)用gedit编辑脚本程序test14[root@localhostbin]#gedittest14for((j=0;j<=10;j++))doif(($j%2==1))thenecho"$j"fidone(2)设置权限:

[root@localhostbin]#chmod+xtest14(3)执行:[root@localhostbin]#./test1413579Linux系统及编程基础Linux系统基础Shell编程*39【条件结构语句】2case语句语法:case字符串in值1|值2)操作;;值3|值4)操作;;值5|值6)操作;;*)操作;;esaccase的作用就是当字符串与某个值相同是就执行那个值后面的操作。如果同一个操作对于多个值,则使用"|"将各个值分开。在case的每一个操作的最后面都有两个";;",分号是必须的。Linux系统及编程基础Linux系统基础Shell编程*40【条件结构语句】case语句例13:Linux是一个多用户操作系统,编写一程序根据不同的用户登录输出不同的反馈结果。(1)用vi编辑脚本程序test15[root@localhostbin]#vitest15#!/bin/shcase$USERinbeichen)echo"Youarebeichen!";;liangnian)echo"Youareliangnian";//注意这里只有一个分号

echo"Welcome!";;//这里才是两个分号

root)echo"Youareroot!";echo"Welcome!";;//将两命令写在一行,用一个分号作为分隔符*)echo"Whoareyou?$USER?";;esacLinux系统及编程基础Linux系统基础Shell编程*41【条件结构语句】case语句例13(续):Linux是一个多用户操作系统,编写一程序根据不同的用户登录输出不同的反馈结果。(2)设置权限:[root@localhostbin]#chmod+xtest15(3)执行:[root@localhostbin]#./test15YouarerootWelcome!Linux系统及编程基础Linux系统基础Shell编程*42【函数】shell程序也支持函数。函数能完成一个特定的功能,可以重复调用这个函数。函数格式如下:函数名(){

函数体}函数调用方式为:函数名参数列表Linux系统及编程基础Linux系统基础Shell编程*43【函数】例14:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果。(1)编辑代码[root@localhostbin]#vitest16#!/bin/shadd(){a=$1b=$2z=`expr$a+$b`echo"Thesumis$z"}add$1$2(2)修改权限

[root@localhostbin]#chmod+xtest16(3)程序运行结果[root@localhostbin]#./test161020Thesumis30Linux系统及编程基础Linux系统基础Shell编程*44注意:函数定义完成后必须同时写出函数的调用,然后对此文件进行权限设定,再执行此文件。【调用其他shell脚本】在shell脚本的执行过程中,shell脚本支持调用另一个shell脚本,调用的格式为: 程序名例15:在shell脚本test17中调用test18(1)编辑代码#test17脚本#!/bin/shecho"Themainnameis$0"./test18echo"thefirststringis$1"#test18脚本#!/bin/shecho"Howareyou$USER?"(2)修改权限[root@localhostbin]#chmod+xtest17[root@localhostbin]#chmod+xtest18Linux系统及编程基础Linux系统基础Shell编程*45(3)程序运行结果[root@localhostbin]#./test17abc123Themainnameis./test17Howareyouroot?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论