Linux shell單詞本程式 Shell代碼 #!/bin/bash for a in $@ do case $a in file=*) file="$(echo $a|sed 's/.*=//;s/%sp%/ /g')" ;; list) mode=list ;; find=*) mode=find var="$(echo $a|sed 's/.*=//;s/,,/ /g')" ;; add=*) mode=add var="$(echo $a|sed 's/.*=//')" ;; del=*) mode=del var="$(echo $a|sed 's/.*=//;s/,,/ /g')" ;; help) cat <<EOF 單詞表程式 用法:voct file= [list|help|add=|del=|find=] file=檔案名稱 檔案名稱中空格一律用%sp%代替,檔案名稱中不能出現%sp% list 列出檔案中所有項目 help 顯示本協助 add=添加條目1[,,添加條目2,,添加條目3...] del=刪除條目1[,,刪除條目2,,刪除條目3...] find=尋找條目1[,,尋找條目2,,尋找條目3...] 條目與條目之間以,,(半形)分隔 刪除根據行開頭,例如del=abc能刪除abc和abcd 若有需要刪除條目,請務必使用find先尋找,然後使用要刪條目的獨立開頭(與其他條目保證不重合)刪除 等號後不能再有等號,推薦使用"——"代替 EOF exit esac case $mode in list) cat "$file" ;; find) for var3 in $var do cat "$file"|grep --color=never $var3 done ;; del) for var0 in $var do sed -i "/^$var0/d" "$file" done ;; add) touch $file have=1 [ $have = 1 ] && var2="$(echo $var|sed 's/%sp%/ /g;s/,,/#enter#/g')" && echo $var2 >> "$file" && sed -i 's/#enter#/\n/g' "$file" esac done