요청 후 첫 번째 조건을 실행하지 못했습니다.

요청 후 첫 번째 조건을 실행하지 못했습니다.

그래서 첫 번째 스크립트를 작성하려고 하는데 올바르게 실행되지 않습니다.

스크립트 내부로 들어가고 싶지만 git fetch --prune origin그 전에 질문하고 싶습니다. "계속"하시겠습니까, 아니면 "종료"하시겠습니까? "종료" 부분은 작동하지만 "계속" 부분은 작동하지 않습니다.

#!/usr/bin/env bash

echo "Ready to git-some and sync your local branches to the remote counterparts ?"

REPLY= read -r -p 'Continue? (type "c" to continue), or Exit? (type "e" to exit): '

if [[ "${REPLY}" == 'c ' ]]
then
  echo "About to fetch"
  git fetch --prune origin
elif [[ "${REPLY}" == 'e' ]]
then
  echo "Stopping the script"
fi

답변1

첫 번째 if 조건에 공백이 있습니다 'c '.

if [[ "${REPLY}" == 'c ' ]]

조건 검색 또는c[space]e

그것을 제거.

if [[ "${REPLY}" == 'c' ]]

else디버깅 조건은 다음과 같습니다 .

if [[ "${REPLY}" == 'c' ]]
then
    echo "About to fetch"
    git fetch --prune origin
elif [[ "${REPLY}" == 'e' ]]
then
    echo "Stopping the script"
else
    echo "${REPLY} is INVALID"
fi

이 경우에는 스위치 케이스를 사용하는 것을 선호합니다.

echo "Ready to git-some and sync your local branches to the remote counterparts ?"

read -r -p 'Continue? (type "c" to continue), or Exit? (type "e" to exit): ' REPLY

case $REPLY in
    [Cc])
        echo "About to fetch"
        git fetch --prune origin
        ;;
    [Ee])
        echo "Stopping the script"
        exit 1;;
    *)
        echo "Invalid input"
        ;;
esac

관련 정보