该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
实验目的
1. 熟悉shell基本编程;
2. 变量赋值:直接赋值;read从键盘赋值;命令执行的结果赋值;命令行参数赋值;read从文件读取数据赋值。
3. 函数:从用户或者位置变量获得参数;使用全局变量返回计算结果。
4. for循环的用法
5. make的用法
实验内容
1. 根据命令行文件参数(add.txt)及函数计算文件中所有浮点数和。
l $vi float_sum.sh
ü #!/bin/bash
ü #function definition
ü Usage()
ü {
ü echo “ Usage:$0 file_name”
ü exit 1
ü }
ü float ()
ü {
ü line=0
ü item=0
ü result=0.0
ü while read line
ü do
ü for item in $line
ü do
ü result=$( echo“$result + $item” |bc )
ü done
ü done < $1
ü }
ü #main program
ü if [ $# -ne 1 ]
ü then
ü Usage
ü fi
ü float $1
ü echo “result=$result”
l $chmod 764 float_sum.sh
l $vi add.txt
ü 23.45 45.54 32.21 678.93
ü 9.23 7893.21 543.8
l $./float_sum.sh add.txt
2. 根据命令行文件参数(multi.txt)和函数计算文件中所有浮点数乘积。
l $vi multi.txt
ü 23.45 5.54 0.21 78.03
ü 9.23 93.1 543.08
3. 根据命令行文件参数(string.txt)并且使用函数统计其中字符串“teststring“出现的次数。
l $vi Statistic.sh
ü #!/bin/bash
ü #function definition
ü Usage()
ü {
ü echo “ Usage:$0 file_name”
ü exit 1
ü }
ü Check()
ü {
ü if [[ $target = $1 ]]
ü then
ü count=$(( $count + 1 ))
ü fi
ü }
ü Computing ()
ü {
ü line=0
ü item=0
ü while read line
ü do
ü for item in $line
ü do
ü Check $item
ü done
ü done < $1
ü }
ü #main program
ü if [ $# -ne 1 ]
ü then
ü Usage
ü fi
ü target=”teststring”
ü count=0
ü Computing $1
ü echo “$target=$count”
l $chmod 764 Statistic.sh
l $vi string.txt
beginning unix programmer teststring An
introduction to the Analysis of Algorithm
teststring other string
l $./ Statistic.sh string.txt
4. 使用函数实现用户登录脚本。检测用户输入的密码是否与保存的密码匹配,若一致,显示登录成功;若不相同,提示密码错误,并且要求用户重新输入密码进行检测。可以允许用户试错n次,达到n次后,退出登录界面。
5. make用法:
l $vi mymakefile.mk
ü GCC=g++
ü OFLAG=-o
ü CFLAG=-c
ü OBJ=mymain.o vector.o
ü EXE=mymain
ü $(EXE):$(OBJ)
$(GCC) $(OFLAG) $@ $^
ü %.o:%.cpp
$(GCC) $(CFLAG) $^
l $make -f mymakefile.mk
6. c++编程:实现表达式计算器。使用make编译。
实验评价