讀檔案內容,做互動式回答,然後追加檔案

2021-07-05 08:59:06 字數 2283 閱讀 8938

目的:使用shell編寫乙個互動式問答指令碼

具體描述:

需要做答的問題儲存在乙個檔案中,問題內容格式如下:

1. the first question()

a. ***x  b. ***x

c. ***x  d. ***x

2. the second question()

a. ***x   b. ***x

c. ***x  d. ***x

3. the third question()

a. ***x   b. ***x

c. ***x    d. ***x

然後迴圈遍歷,每次顯示乙個問題,等待使用者輸入,使用者輸入的答案存到另乙個檔案中。

指令碼如下:

#!/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

fiwhile 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=$

#echo $arraylength

flag=0            #間隔取數標誌

firstnum=0        

secondnum=0

for var in $

doif [ $flag -eq 0 ]

then

firstnum=$var

flag=$((flag+1))

continue

fisecondnum=$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++))

doecho $(sed -n "$i, $i"p quizztxt.txt)

done

read answer

echo $answer >> answer.txt

具體可參考檔案。

讀檔案所有內容

cfile file file new cfile t strfilename cfile modereadwrite 裝載文字檔案 cfilestatus status if file getstatus t strfilename status 並且關閉檔案 file close file op...

svn 讀取檔案內容做日誌,提交svn

優點 支援換行,日誌中文不會亂碼 echo off set filepath d test.cpp set logfilepath d logfile.txt svn commit f logfilepath filepath pause但是,一旦把日誌模板檔案 d logfile.txt 上傳了,...

母版頁與內容頁互動

母版頁是vs2005 以來最重要的新功能之一,它如此出色地改變了整個系統的結構,以至於我覺得不用它簡直就是一種犯罪.關於母版頁的定義及基本用法網上隨處可見,這裡不再贅述,我大概地總結一下母版頁與內容頁互動的幾種情況.說來奇怪,母版頁從推出到現在也有不少的一段時間了,可是在網上卻幾乎搜不出來幾篇有價值...