![옵션이 bash 스크립트로 설정되어 있는지 확인하는 방법은 무엇입니까? [복사]](https://linux55.com/image/66298/%EC%98%B5%EC%85%98%EC%9D%B4%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C%20%EC%84%A4%EC%A0%95%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
간단한 웹 애플리케이션을 배포하기 위해 기본 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"로 스크립트를 실행하십시오.