ユーザーが数字を正しく入力するまで質問が続くようにループを作成しようとしています。私はこれを試しましたが、私が何を間違っていたのかわかりません。どんな助けでも大変感謝します。
#!/bin/sh
read -p "Welcome to the Draw Program. Please enter a number in-between 5-20: " input
while [ $input -lt 5 ] && [ $input -gt 20 ]
do
echo "Your number wasn't within the range. Please re-enter"
done
ベストアンサー1
どのように同時に数字が5より小さいのですか?そして20より大きいですか?私の考えでは、あなたが望むもの:
while [ "$input" -lt 5 ] || [ "$input" -gt 20 ]
また、ループの番号を再度求めるメッセージを表示する必要があります。
while [ "$input" -lt 5 ] || [ "$input" -gt 20 ]
do
read -rp "Your number wasn't within the range. Please re-enter" input
done
ちなみに、POSIX では読み込みに -p オプションを指定しないので、すべての形式の sh でサポートされるという保証はありません。プログラムが複数のあいまいなオペレーティングシステムで使用されることを意図しており、移植性が重要な場合は、次のことができます。
printf '%s' "Your number wasn't within the range. Please re-enter: "
read -r input