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