프로그램을 만들고 있는데 사용자에게 다시 주문할 것인지 아니면 프로그램을 종료할 것인지 묻는 간단한 에코를 원합니다. Unix의 Shell에 있습니다.
프로그램은 단순히 순서 변수를 에코하고 읽는 것입니다. 마지막에는 어떤 음식을 원하는지, 몇 KG인지 등이 모두 요약되어 있습니다.
이제 프로그램이 사용자에게 "다시 주문하시겠습니까?"라고 묻기를 원하지만 입력이 프로그램을 다시 시작하거나 프로그램을 종료할 때 "예" 또는 "아니요"에 대한 if 문을 추가하는 방법을 모르겠습니다. 그들이 "아니오"라고 말하면.
도움을 주시면 감사하겠습니다. 간단해 보이지만 온라인에서 도움을 찾을 수 없습니다.
답변1
나는 당신이 다음과 같은 것을 원한다고 생각합니다 :
#!/bin/sh
read -rp 'Fish or chicken? ' protein
read -rp 'Beans or rice? ' starch
read -rp 'Broccoli or asparagus? ' veggie
read -rp 'Beer or beer? ' drink
echo "You have ordered the $protein with a side of $starch and $veggie, and to drink you will have $drink"
while true; do
read -rp 'Would you like to order again? ' order
if echo "order" | grep -iq 'yes'; then
exec $0
elif echo "order" | grep -iq 'no'; then
exit 0
fi
done
read
표준 입력에서 읽는 쉘 내장 명령입니다. 스위치를 통해 -p
사용자에게 "메시지"를 표시하고 기본 REPLY
변수 또는 지정된 변수(단백질, 전분, 야채, 음료 등)를 설정합니다.
$0
스크립트의 쉘 이름으로 확장되는 쉘 특수 매개변수입니다. 스크립트 이름
사용자가 "다시 주문하시겠습니까?"라고 대답하면 yes
스크립트가 다시 실행되고 그렇지 않으면 종료됩니다.