bash 스크립트 파일에 매개변수 전달

bash 스크립트 파일에 매개변수 전달

버전 태그 매개변수(예: v1.3)를 bash 스크립트 파일에 전달하고 싶습니다. 태그 매개변수가 포함된 파일을 보여드리겠습니다. ${tag}터미널에서 v1.3 매개변수를 전달하고 싶습니다 . 이 태그 값은 자주 변경됩니다. 누구든지 다음 bash 스크립트 파일에 매개 변수를 전달하는 방법을 말해 줄 수 있습니까?

#!/bin/bash
cd /path/to/file
git checkout -- .
git checkout tags/${tag}

답변1

소위 "위치 매개변수" $1등을 사용할 수 있습니다 $2.

예를 들어

#!/bin/bash
cd /path/to/file
git checkout -- .
git checkout tags/"$1"

myscript tag 이제 or myscript anothertag 또는 을 수행할 수 myscript test있으며 의 값은 $1입력한 값이 됩니다.

답변2

한 줄을 추가하면 스크립트가 원하는 대로 작동할 수 있습니다.

#!/bin/bash
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/${tag}

그러면 스크립트의 첫 번째 명령줄 인수를 가져와서 변수에 할당합니다 tag.

값에 공백을 허용하려면 $tag변수 확장을 큰따옴표로 묶으십시오.

#!/bin/bash
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

성공 시에만 git작업을 수행 하려면 cd각 명령을 이전 명령의 성공적인 완료에 종속되게 만듭니다.

#!/bin/bash
tag=$1
cd /path/to/file &&
git checkout -- . &&
git checkout tags/"$tag"

또는 명령 중 하나가 실패하면 스크립트가 자동으로 종료되도록 합니다.

#!/bin/bash -e
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

이 스크립트는 특정한 것을 사용하지 않으므로 bash다음 환경에서 쉽게 실행할 수 있습니다 /bin/sh.

#!/bin/sh -e

tag=$1

cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

답변3

위치 매개변수를 사용하여 스크립트에 매개변수를 전달할 수 있습니다.

#!/bin/bash
cd /path/to/file
TAG=$1  # read the first paramater passed to your script like ./myscript v1.2
if [ "$TAG" != "" ]; then
    git checkout -- .
    git checkout tags/"$TAG"
else
    echo "Please enter a Tag "
    exit 1 ;
fi

또한 대화형 모드를 사용하여 사용자가 스크립트에 .

   #!/bin/bash
    read -p "Please enter tag: " TAG
     cd /path/to/file
    if [ -n "$TAG" ]; then
        git checkout -- .
        git checkout tags/"$TAG"
    else
        echo "Please run again and enter a Tag "
        exit 1 ;
    fi

관련 정보