![Unix를 처음 접하고 프로그램을 다시 시작하거나 종료하기 위한 간단한 사용자 입력을 만들고 싶습니다. [닫기]](https://linux55.com/image/131924/Unix%EB%A5%BC%20%EC%B2%98%EC%9D%8C%20%EC%A0%91%ED%95%98%EA%B3%A0%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B1%B0%EB%82%98%20%EC%A2%85%EB%A3%8C%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%9C%20%EA%B0%84%EB%8B%A8%ED%95%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EB%A7%8C%EB%93%A4%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
프로그램을 만들고 있는데 사용자에게 다시 주문할 것인지 아니면 프로그램을 종료할 것인지 묻는 간단한 에코를 원합니다. 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
스크립트가 다시 실행되고 그렇지 않으면 종료됩니다.