while [ condition ] do 程式段落 done
[dywang@dywmac zzz]$ vim sh13.sh [dywang@dywmac zzz]$ cat sh13.sh #!/bin/bash rnum=$((RANDOM%10)) num="-10" count=0 while [ "$rnum" -ne "$num" ]; do read -p "請輸入一個 0 到 9 的數字: " -t 5 num ((count++)) done echo "你答對了,隨機數字 $num,你猜了 $count 次。"
[dywang@dywmac zzz]$ sh sh13.sh 請輸入一個 0 到 9 的數字: 5 你答對了,隨機數字 5,你猜了 1 次。 [dywang@dywmac zzz]$ sh sh13.sh 請輸入一個 0 到 9 的數字: 5 請輸入一個 0 到 9 的數字: 3 你答對了,隨機數字 3,你猜了 2 次。 [dywang@dywmac zzz]$ sh sh13.sh 請輸入一個 0 到 9 的數字: 6 請輸入一個 0 到 9 的數字: 5 請輸入一個 0 到 9 的數字: 4 請輸入一個 0 到 9 的數字: 3 請輸入一個 0 到 9 的數字: 2 請輸入一個 0 到 9 的數字: 1 請輸入一個 0 到 9 的數字: 8 你答對了,隨機數字 8,你猜了 7 次。
[dywang@dywmac zzz]$ cat sdata.csv no.,name,score1,score2,grade 11,dywang,81,12,A 152,linda,90,58,C 33,peter,72,95,C 4,rita,65,34,E 58,cora,5,85,D
IFS=','
設定逗號為欄位分隔符號,read -r
選項關閉倒斜線 "\"
跳脫動作,f1 f2...
指定各欄位依序放在 f1 f2 ..
等變數。
[dywang@dywmac zzz]$ cat sh14.sh #!/bin/bash [ -z "$1" ] && echo "Usage: $0 <datafile>" && exit 1 ! test -f "$1" && echo "Input file not found" && exit 2 while IFS=',' read -r f1 f2 f3 f4 f5; do [ "$f1" == "no." ] && echo -e "name\tavg." && continue avg=$(((f3+f4)/2)) echo -e "$f2\t$avg" done < $1
[dywang@dywmac zzz]$ sh sh14.sh Usage: sh14.sh <datafile> [dywang@dywmac zzz]$ sh sh14.sh sdata.csv name avg. dywang 46 linda 74 peter 83 rita 49 cora 45