Eu entendo sua pergunta que você quer controlar a função. Talvez seja melhor feito com opções. Aqui está uma maneira:
#!/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 "********************************************";
Se você chamar esse script sem opções:
bash deploy.sh
ambos, git e install, serão chamados. Se você chamá-lo com a opção -i
(ou resp. -g
) somente a instalação (ou a chamada do git) será feita:
bash deploy.sh -i
bash deploy.sh -g
Você também pode especificar as duas opções para fazer as duas coisas de uma das seguintes formas:
bash deploy.sh -gi
bash deploy.sh -g -i