간단한 웹 애플리케이션을 배포하기 위해 기본 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"로 스크립트를 실행하십시오.