아래 스크립트에서 사용자는 잠재적으로 잘못된 스크립트 실행을 계속 진행할 것인지 묻는 메시지를 표시합니다. 사용자가 Y
프롬프트에 입력 하면 case
블록에서 빠져 나와 while
다시 루프로 다시 보내집니다 .
#! /bin/bash
set -e
echo
echo "bad install start"
echo "-----------------------------------------"
while true; do
read -p "this script will probably fail - do you want to run anyway?" yn
case $yn in
[Yy]*)
##### WHAT GOES HERE?? #####
;;
[Nn]*)
exit ;;
*)
echo "answer y or n" ;;
esac
echo "script has broken out of case back into while loop"
done
echo -e "\e[33m Installing bad packagename \e[0m"
apt-get install sdfsdfdfsd
echo "rest of script - will i keep running?"
때 n
입력, 스크립트는 전체로 원하는 존재. Y
스크립트를 입력 하면 while 블록 case
과 while 블록 모두에서 벗어나지 만 완전히 종료되지 않도록 하는 방법을 알고 싶습니다 . 자리 표시 자 ( "무엇입니까?")에 입력 할 수있는 항목이 있습니까?
내가 처음 응답 한 이후 코드를 편집했지만 어떤 경우에도주의
—
dhag
$TEST=1
해야하며 TEST=1
스크립트가이 변경으로 작동 할 가능성이 높습니다.
그렇습니다, 나는 시험 할 때 그것을 보았다!
—
the_velour_fog
@dhag 편집 한 내용이 개선되었다고 생각합니다. 살펴보십시오. 귀하의 목표는 코드가 귀하의 대답이 잘 맞는 곳에 코드를 다시 작성하는 것으로 보이며 지금은 더 가깝습니다.
—
derobert
@derobert : 당신의 편집은 나에게 잘 보인다. 확실히 질문을 명확하게 만듭니다.
—
dhag
[Yn]*)
; 당신은 아마 의미했다[Yy]*)
.