我想撰寫一個簡單的 bash 腳本來訓練多項選擇測驗。問一個問題;給出四個選擇(a、b、c、d);如果用戶輸入輸入,則顯示它是錯誤的還是正確的,然后繼續下一個問題。
到目前為止,這是我的代碼:
#!/usr/bin/bash
echo Question1="How much is 2 2?"
echo a="1"
echo b="2"
echo c="3"
echo d="4"
read Question1
if [ "$Question1" = "d" ];
then
echo "this is correct"
else
echo "this is NOT correct"
fi
read
到目前為止,我在 youtube 等上找到的有關命令示例的所有示例都在一個問題后停止。我怎樣才能問多個問題?輸入另一個問題不起作用,bash 顯示語法錯誤:
#!/usr/bin/bash
echo Question1="How much is 2 2?"
echo a="1"
echo b="2"
echo c="3"
echo d="4"
read Question1
if [ "$Question1" = "d" ];
then
echo "this is correct"
else
echo "this is NOT correct"
echo Question2="How much is 2 1?"
echo a="1"
echo b="2"
echo c="3"
echo d="4"
read Question2
if [ "$Question2" = "c" ];
then
echo "this is correct"
else
echo "this is NOT correct"
fi
uj5u.com熱心網友回復:
它給你一個語法錯誤,因為你沒有fi
在你的第一if
條陳述句之后,可能是復制/粘貼期間的錯誤。
之后它應該可以正常作業。
uj5u.com熱心網友回復:
這是命令select
很方便的地方
PS3="How much is 2 2? "
select choice in 1 2 3 4; do
if [[ $choice == 4 ]]; then
echo "Correct"
break
fi
echo "Incorrect"
done
PS3="How much is 2 1? "
select choice in 1 2 3 4; do
if [[ $choice == 3 ]]; then
echo "Correct"
break
fi
echo "Incorrect"
done
或者,我們可以將重復封裝在一個函式中:
question() {
local PS3="$1 " answer=$2 choice
shift 2
select choice in "$@"; do
if [[ $choice == "$answer" ]]; then
echo "Correct"
break
fi
echo "Incorrect"
done
}
question "How much is 2 2?" 4 1 2 3 4
question "How much is 2 1?" 3 1 2 3 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515839.html
標籤:重击
上一篇:如何在腳本中掃描藍牙設備?
下一篇:sudo阻止執行以下命令