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