以下bash腳本可以輸入0-100之間的數字,並將平均值輸出到屏幕。該腳本還具有輸入驗證功能,不允許輸入0-100和q或Q之間的任何數字。輸入q或Q後,計算結果並輸出到屏幕。輸入驗證還會檢查以確保沒有輸入空值,輸入特殊字符以及沒有輸入數字/字母組合,特殊字符/數字組合等。嘗試在此bash腳本中跳過反斜槓
我唯一的問題是反斜槓字符。反斜槓在這個腳本中被轉義出來,當我運行這個腳本並輸入一個反斜槓時,它會暫停,並要求您按下return使腳本繼續。似乎腳本仍然有效,但我很好奇它爲什麼會暫停。我在這個網站上看到的大部分建議都是用更多的反斜槓來反轉反斜線,但這是行不通的。
#! /bin/bash
AVERAGE="0"
SUM="0"
NUM="0"
clear
while true; do
echo -n "Enter your score [0-100%] ('q' for quit): "; read SCORE;
if [[ "$SCORE" == *[a-pA-pr-zR-Z]* ]] ||
[[ "$SCORE" == *['!'\\@#\$%^\&*()_+~\`\-=\[\]\{\}\|:\;\'\"\<\>,.?/\\]* ]] ||
[[ -z "$SCORE" ]] ||
(("$SCORE" < "0")) || (("$SCORE" > "100"))
then
echo "Be serious. Come on, try again: "
elif [[ "$SCORE" == [qQ] ]]; then
echo "Average rating: $AVERAGE%."
break
else
SUM=$[$SUM + $SCORE]
NUM=$[$NUM + 1]
AVERAGE=$[$SUM/$NUM]
fi
done
echo "Exiting."
也我該如何檢查任何字母數字項並提示他們重新輸入? –