《Linux操作系统》实验九shell及shell编程.docx
《《Linux操作系统》实验九shell及shell编程.docx》由会员分享,可在线阅读,更多相关《《Linux操作系统》实验九shell及shell编程.docx(14页珍藏版)》请在冰点文库上搜索。
《Linux操作系统》实验九shell及shell编程
《Linux操作系统》
实验报告
实验九:
shell及shell编程
一、
实验目的
a)sed的使用;
b)awk的应用;
c)shell及shell编程;
d)与用户启动相关的文件及使用
二、实验环境
一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。
三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)
(1)shell是一个命令行解释器,它为用户提供了一个Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell,启动,挂起,停止甚至是编写一些程序
(2)编写第一个shell脚本
a)创建一个shell脚本,输出helloworld!
(3)shell变量
a)Linuxshell中的变量分为:
系统变量和用户自定义变量
b)系统变量:
$HOME,$PWD,$SHELL,$USER等等
(4)shell变量定义
a)基本语法:
定义变量变量=值撤销变量unset变量声明静态变量readonly变量,注意不能unset
(5)将命令的返回值赋给变量
a)A=`ls-la`反引号,运行里面的命令,并把结果返回给变量A
b)A=$(ls-la)等价于反引号
(6)设置环境变量
a)Export变量名=变量值(将shell变量输出环境变量)
b)Source配置文件(让修改后的配置信息立即生效)
c)Echo$变量名(查询环境变量的值)
(7)位置参数变量
a)$nn为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,需要用大括号包含${10}
b)$*这个变量代表命令行中所有参数,$*把所有的参数看成一个整体
c)$@这个变量也代表命令行所有的参数,不过$@吧每个参数区分对待
d)$#这个变量命令行中所有参数的个数
(8)预定义变量
a)$$当前进程的进程号PID
b)$!
后台运行的最后一个进程的进程号PID
c)$?
最后一次执行的命令的返回状态。
如果这个变量的值为0,证明上一个命令正确执行。
如果非0,证明上一个命令执行不正确
(9)运算符
a)$((运算式))或$[运算式]
b)Exprm+n注意expr运算符间有空格
c)Exprm–n
d)Expr\*,/,%乘,除,取余
(10)条件判断
a)基本语法:
[condition](注意condition前后要有空格)
b)非空返回true,可使用$验证(0为true,>1为false)
c)常用判断
d)案列1.
e)案列二
f)案例三
(11)If判断
a)注意:
[条件判断式],中括号和条件判断式之间必须有空格
b)案列:
编写一个shell程序,输入参数大于等于60,输出及格了,小于60输出不及格。
(12)Case语句
a)案列1:
当参数是1时,输出”周一”,是2的时候,就输出“周二”,其他情况输出“other”
(13)For循环
a)基本语法
b)案列1:
打印命令行输入的参数
c)案列从1加到100输出显示
(14)while循环
a)基本语法
b)案列1:
从命令行输入一个数n,统计从1+…..+n的值是多少
(15)read读取控制台输入
a)基本语法read(选项)(参数)-p:
指定读取取值是的提示符-t指定读取指的时间内输入,就不再等待了。
b)案例
(16)自定义函数
a)调用直接写函数名:
funname[值]
b)案例
四、实验总结(每项不少于20字)
存在问题:
对于文件和文件夹的区分不好;没有注意到目录的位置。
解决方法:
查找课本上网解决。
收获:
要加强对基本命令的练习。
五、教师批语