다음 단락(섹션)을 실행할지 묻는 bash 스크립트를 만드는 방법은 무엇입니까?

다음 단락(섹션)을 실행할지 묻는 bash 스크립트를 만드는 방법은 무엇입니까?

bash 스크립트를 실행할 때. 내가 가지고 있다는 점을 감안할 때

set -x

나는 무슨 일이 일어나고 있는지 시각적으로 관찰합니다. 하지만 어떤 부분에서는 멈추고 싶고 계속 다음 줄을 계속할지 묻습니다.

알아요:

set -e

이는 오류 발생 시 bash 스크립트가 종료되도록 보장하지만 사용하고 싶지는 않습니다. 대신, 나는 내 코드를 분류하고 bash 스크립트가 때때로 계속해야 하는지 묻기를 원합니다.

답변1

read대화형 스크립트 에 사용할 수 있습니다 .

예를 들어:

echo "Do you want to continue?(yes/no)"
read input
if [ "$input" == "yes" ]
then
echo "continue"
fi

input제공된 if 조건에 따라 추가로 진행할 수 있습니다 .

편집하다

여러 곳에서 사용하려면 함수를 만들고 사용자 개입이 필요할 때마다 호출할 수 있습니다.

답변2

계속하려면 확인을 받으려면read내장배쉬를 사용할 수 있습니다. 그러나 모든 행에 대해 이 작업을 수행하려는 경우 필요한 모든 위치에 두 개 이상의 행을 삽입하고 싶지는 않을 것입니다.

또한, 당신은 원하지 않습니다완전한 답변을 입력하세요프로그램을 계속해야 하는지 여부(예: "yes" 또는 "y")Enter 키를 누르세요계속하고 멈추기에 충분할 것입니다.Ctrl+를 누르세요C매우 간단하고 매우 명확합니다.

하지만 이제 이러한 모든 확인 검사를 코드에 추가했습니다. 몇 번만 실행하고 싶다면 어떻게 해야 할까요?확인할 필요가 없습니다? 알았어, 그럴 수 있으면 좋을 텐데꺼 줘. 이를 위해 변수를 사용합니다.

당신은기능중간 행에 다음을 추가할 수 있습니다.

#!/bin/bash

#useConfirm=true - comment out the line below like this to disable confirmation
useConfirm=true

confirm() {
   [ "$useConfirm" = true ] && read -p "Proceed? (Enter) - (^C to abort)"
}

echo a
confirm
echo b
echo c
confirm
echo d

관련 정보