옵션이 bash 스크립트로 설정되어 있는지 확인하는 방법은 무엇입니까? [복사]

옵션이 bash 스크립트로 설정되어 있는지 확인하는 방법은 무엇입니까? [복사]

간단한 웹 애플리케이션을 배포하기 위해 기본 bash 스크립트를 만들고 있습니다. 내 현재 코드는 다음과 같습니다.

#!/bin/bash
clear

echo "********************************************";
echo "Hello, I'm going to deploy the QuizProject";
echo "********************************************";

git pull --all;

#Only need to execute if option is present
composer install;

echo "********************************************";
echo "All the jobs done! Cheers";
echo "********************************************";

현재 나는 명령에서 이 스크립트를 실행하고 있습니다.

bash deploy.sh

그러나 이것은 bash 파일의 모든 명령을 실행합니다.

특정 명령을 전달할 때 이 작업을 수행한 다음 "composer install"을 실행하고 싶습니다.

bash -composer deploy.sh

답변1

귀하의 질문을 이해합니다. 해당 기능을 제어하고 싶습니다. 어쩌면 옵션을 통해 수행하는 것이 가장 좋습니다. 한 가지 방법은 다음과 같습니다.

#!/bin/bash

do_all=1
do_git=0
do_install=0
while getopts "gi" opt
do
    case $opt in
    (g) do_all=0 ; do_git=1 ;;
    (i) do_all=0 ; do_install=1 ;;
    (*) printf "Illegal option '-%s'\n" "$opt" && exit 1 ;;
    esac
done

clear

echo "********************************************";
echo "Hello, I'm going to deploy the QuizProject";
echo "********************************************";

(( do_all || do_git )) && git pull --all;

(( do_all || do_install )) && composer install;

echo "********************************************";
echo "All the jobs done! Cheers";
echo "********************************************";

옵션 없이 스크립트를 호출하는 경우:

bash deploy.sh

git과 install이 모두 호출됩니다. 옵션 -i(또는 관련 ) 과 함께 호출하면 -g설치만 완료됩니다(관련 git 호출).

bash deploy.sh -i
bash deploy.sh -g

다음 방법 중 하나로 두 옵션을 지정하여 두 작업을 수행할 수도 있습니다.

bash deploy.sh -gi
bash deploy.sh -g -i

답변2

#!/bin/bash
clear

echo "********************************************";
echo "Hello, I'm going to deploy the QuizProject";
echo "********************************************";

git pull --all;

#Only need to execute if option is present
if test "$1" = "-composer"; then
    composer install;
fi

echo "********************************************";
echo "All the jobs done! Cheers";
echo "********************************************";

작성기 부분을 실행하려면 "bash 배포.sh -composer"로 스크립트를 실행하십시오.

관련 정보