读文件内容,做交互式回答,然后追加文件
来源:互联网 发布:linux下怎么解压缩 编辑:程序博客网 时间:2024/06/05 06:22
目的:使用shell编写一个交互式问答脚本
具体描述:
需要做答的问题存储在一个文件中,问题内容格式如下:
1. the first question()
A. xxxx B. xxxx
C. xxxx D. xxxx
2. the second question()
A. xxxx B. xxxx
C. xxxx D. xxxx
3. the third question()
A. xxxx B. xxxx
C. xxxx D. xxxx
.....
然后循环遍历,每次显示一个问题,等待用户输入,用户输入的答案存到另一个文件中。
脚本如下:
#!/bin/bash
##############################
# Author: lizw
# Date: 2015/09/17 22:27
# Authority: Anyone
#############################
numberflag=0 #行开头数字标志
lineNo=0 #行数
firstHeadSpaceLine=0 #开头的空白行数,主要用在输出显示中。下面没有用到
#删除答案文件
# 改进之处:
# 每次运行脚本,可向答案文件中追加时间和分割线
# 分割每次输入的答案,做历史记录
if [ -f answer.txt ]
then
rm -f answer.txt
fi
while read line
do
########### Begin 统计开头空白行数 ############
if [ $lineNo -eq 0 -a -z "$line" ]
then
firstHeadSpaceLine=$((firstHeadSpaceLine+1))
continue
fi
########### end 统计开头空白行数 ############
#求取问题文件的行数(除去开头空白行)
lineNo=$((lineNo+1))
################ Begin ######################
# 本段代码解释如下:
# 通过判断每行开头是否是数字,形成问题数组
# 即每一道题所占的行数形成一个数组元素
num=$(echo $line |cut -d'.' -f 1)
expr $num + 0 >/dev/null 2>&1
if [ $? -eq 0 ]
then
numberArray[numberflag]=$lineNo
numberflag=$((numberflag+1))
fi
################ End ######################
done < quizzTxt.txt
#arrayLength=${#numberArray[@]}
#echo $arrayLength
flag=0 #间隔取数标志
firstNum=0
secondNum=0
for var in ${numberArray[*]}
do
if [ $flag -eq 0 ]
then
firstNum=$var
flag=$((flag+1))
continue
fi
secondNum=$var
for ((i=$firstNum; i<$secondNum;i++))
do
#echo $(sed -n "$firstNum, $((secondNum-1))"p quizzTxt.txt)
echo $(sed -n "$i, $i"p quizzTxt.txt)
done
read answer
echo $answer >> answer.txt
firstNum=$secondNum
done
#追加最后一道题答案
for ((i=$firstNum; i<=$(cat quizzTxt.txt | wc -l); i++))
do
echo $(sed -n "$i, $i"p quizzTxt.txt)
done
read answer
echo $answer >> answer.txt
具体可参考文件。
- 读文件内容,做交互式回答,然后追加文件
- 向文件中追加内容,然后读取出来
- CStdioFile 追加文件内容
- java追加文件内容
- 追加文件内容
- 追加内容到文件末尾
- 写文件(内容追加)
- 追加内容到文件末尾
- HDFS文件内容追加(Append)
- HDFS文件内容追加(Append)
- HDFS文件内容追加(Append)
- linux 向文件追加内容
- HDFS文件内容追加(Append)
- 文件中追加文本内容
- Java往文件追加内容
- HDFS文件内容追加(Append)
- HDFS文件内容追加(Append)
- java实现文件内容追加
- STL map 的总结
- 数据结构与算法学习1——算法复杂度分析
- python安装".egg"文件导入module
- mysql 记录语句记录
- iOS Block语法 基础介绍1 浅谈(void(^MyBlock)()=^) oc block
- 读文件内容,做交互式回答,然后追加文件
- 笨猴子
- servlet的生命周期
- linux下jar命令与jar包
- PowerDesigner—你知道CDM、LDM、PDM、OOM的区别吗?
- struts2下的ajax注意事项
- Java多线程:线程状态
- LeetCode Maximal Rectangle
- Android获取UI控件的宽高