软件学院实验报告实验题目:shell编程基础。
学号:201200301094(辅修号:)日期:12.21班级:一班姓名:李传祥email:
实验目的:1.掌握引号的使用。
2.理解什么是位置变量参数和特定变量参数。
3.掌握简单的表达式赋值方法,包括expr命令和变量扩展$((
4.掌握test命令的用法,熟悉test命令的字符串操作符、整数操作符、文件操作符和逻辑操作符。5.了解shell控制语句的基本用法。软硬件环境:
版本12.04(precise) 32位。
内核linux 3.2.0-32-genetic-pae
gnome 3.4.2
实验步骤:world”;echo “$string”:echo '$string'; the current work directory is:
`pwd`”;bin;cd /bin;vi param;
4./bin# i=10;/bin# j=5;/bin# echo $(i*5-j));
5.(1)str1=abcd;str2=”abcd”;test “$str1” =str2”;echo $?2)str1=1234;str2=01234;[“str1” -eq “$str2”];echo $?
3)touch aa;[-w aa];test -w aa;echo $?d aa];echo $?4)/bin# [-r aa -a -x aa];/bin# echo $?
6.(1)until who | grep “$1” >dev/nulldo
sleep 60done
2)if[“$#” -ne 1]then
echo “incorrect number of arguements”fi~
3)echo “*1 has logged on***exit 0
一。引号的使用。
1.双引号和单引号的使用。依次输入下列命令:(1) $string =“hello world!”(2)$echo “$string”(3)$echo ‘$string’
比较(2)和(3)的结果,为什么不同?
student@student-lenovo:~$string="hello world"student@student-lenovo:~$echo "$string"hello world
student@student-lenovo:~$echo '$string'$string
答:单双引号意义不同。
2.反引号的使用。进入你的主目录,输入:
echo “the current work directory is: `pwd`”会显示什么结果?解释反引号的作用。
student@student-lenovo:~$echo "the current work directory is:`pwd`"the current work directory is:
/home/student答:反引号括起来的内容被shell解释为命令行。
二。 shell编程。
3.位置变量参数和特定变量参数。验证讲义中param脚本的运行结果。
1)在你的主目录/home/student下建立目录bin,并进入到bin目录。用vi编辑器编辑param脚本,内容如下:echo " script name: "echo $0
echo "show arguments:"echo $*
echo "my process id:"echo $$
echo "did my script go with any errors?"echo $?
2)执行param脚本,显示什么内容?$param hello world
3)结合执行结果,解释脚本中$0,$*的意义。
1)student@student-lenovo:~$mkdir binstudent@student-lenovo:~$cd /bin
student@student-lenovo:/bin$ vi param(2)script name:-bash
show arguments:
my process id:2399
did my script go with any errors?0
0指命令对应的可执行名$*所有参数。
?最后一个程序或指令的执行状态,用数字表示:0表示执行没有错误,其他任何值表明有错误。$$脚本运行三当前shell的pid4.表达式。依次进行以下操作:
1)给变量i赋值为10,变量j赋值为5.
2)分别用算术扩展$((和expr两种方式求表达式i*5-j的值。
命令。1)字符串操作符。依次输入以下命令,并解释执行结果。$str1=abcd$str2="abcd "
test "$str1" =str2"$echo $?
2)整数操作符。依次输入以下命令,并解释执行结果。$str1=1234$str2=01234
[ "str1" -eq "$str2" ]echo $?
3)文件操作符。依次输入以下命令,并解释执行结果。$touch aa$ [w aa ]$test -w aa$ echo $?d aa ]$echo $?
用ls -l命令进行查看,验证上述输出的正确性。
4)逻辑操作符。利用(3)中的文件aa执行如下命令,并解释结果。$[r aa -a -x aa ]$echo $?
1)student@student-lenovo:/bin$ str1=abcd
student@student-lenovo:/bin$ str2="abcd "
student@student-lenovo:/bin$ test "$str1" =str2"student@student-lenovo:/bin$ echo $?1
错误。str1不等于str2
2)tudent@student-lenovo:/bin$ str1=1234student@student-lenovo:/bin$ str2=01234
student@student-lenovo:/bin$ [str1" -eq "$str2" ]student@student-lenovo:/bin$ echo $?0
正确。3)student@student-lenovo:/bin$touch aa
student@student-lenovo:/bin$ [w aa ]student@student-lenovo:/bin$ test -w aastudent@student-lenovo:
/bin$ echo $?student@student-lenovo:/bin$ [d aa ]student@student-lenovo:
/bin$ echo $?0
aa具有可写权限,不是一个目录文件。
4)student@student-lenovo:/bin$ $r aa -a -x aa ]student@student-lenovo:/bin$ $echo $?1
aa具有可读权限,但不具有执行权限。
6. shell控制语句。编写一个脚本,要求如下:
1)把用户名作为输入参数(位置变量参数),每隔60秒检查一次用户是否登陆,直至该用户登陆。(2)如果执行脚本时输入的参数数目不为1,则输出"incorrect number of arguments"提示。
信息,并退出执行脚本。
3)该用户登陆后,显示"the user用户名has logged on"。其中用户名对应于用户执行时输入的参数信息。
提示:1)用[ "# " cne 1 ]测试输入参数个数是否为1
2)用who|grep "^user ">dev/null判断用户$user是否登陆。
3)用sleep 60表示每隔60秒进行某项操作。
结论分析与体会:通过本次实验,对shell的应用与脚本编写有了更深的认识,其次,对shell的基本知识经过这两次的实验已经取得长足的进步,最后,感谢linux给了我一个扩展自己的平台,我会继续努力,争取更大的进步。
Linux实验
大学。实。验。报。告。系班级姓名学号。课程 linux 教师。实验的目的。为了更好的了解和掌握linux操作系统的,和对linux的常见的命令的运用,以及远程的控制,linux服务器的主机,等linux操作系统有关的问题。实验的内容。1.安装虚拟机软件vmware workstation 6.5或更...
Linux实验
实验1 linux在虚拟机上的安装及与宿主机通信。一 实验目的。1 了解虚拟机的安装与使用方法。2 掌握linux 在虚拟机上 的安装过程。3.学习linux图形用户界面和命令行命令的使用。3 掌握虚拟机上的linux与宿主机之间通信的方法。4 为后续的实验准备环境。5.了解linux内核和发行版本...
linux实验
南京信息工程大学实验 实习 报告。实验 实习 名称 linux下shell编程实验 实习 日期得分指导教师 一 实验目的。1.掌握编辑器vi的基本用法。2.练习编写shell程序。二 实验内容及步骤。实验内容 1.编辑器vi的使用方法。2.编写shell程序。实验步骤 1.复制 etc passwd...