![Bash 쉘 스크립트가 종료되기 전에 3번 반복하고 재시도하도록 허용하는 방법(사용자 이름/비밀번호를 묻는 메시지 표시)](https://linux55.com/image/81291/Bash%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%A2%85%EB%A3%8C%EB%90%98%EA%B8%B0%20%EC%A0%84%EC%97%90%203%EB%B2%88%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%EC%9E%AC%EC%8B%9C%EB%8F%84%ED%95%98%EB%8F%84%EB%A1%9D%20%ED%97%88%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9D%B4%EB%A6%84%2F%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EB%AC%BB%EB%8A%94%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%ED%91%9C%EC%8B%9C).png)
사용자 이름을 요청하고 목록을 확인하는 쉘 스크립트가 있습니다. 이름이 목록에 있으면 다른 쉘 스크립트를 실행하지만 이름을 찾을 수 없으면 오류 메시지를 표시하고 쉘 스크립트를 종료합니다.
하지만 쉘 스크립트를 종료하기 전에 3번의 재시도를 허용하고 싶습니다.
아래는 내 쉘 스크립트입니다
#!/bin/bash
name=$(whiptail --title "Title" \
--backtitle "Backtitle" \
--inputbox "Enter your User ID" 0 40 3>&1 1>&2 2>&3)
if [[ -z $name ]]
then
whiptail --title "Error" --msgbox "Please enter User ID to proceed" 10 50
. ./start.sh
else
egrep -i "\<$name\>" ./user.list
case $? in
0)
. ./main_menu.sh
;;
1)
whiptail --title "Error" --msgbox "Program terminated. You are not authorised to use this program" 10 50
;;
esac
fi
답변1
i=0
while [ $i -le 3 ]; do
code && break
let i=i+1
done
바라보다이 답변 더 알아보기.