After a lot of read, SO or others, I'm really wondering about the best / cleanest way to have a bash script with parameters, optionals with default values.
Here is my script for now:
#!/bin/bash
helpFunction()
{
   echo ""
   echo "Usage: $0 --reload --mode=[single|cluster]"
   echo -e  "\t--reload Reload the database : fixtures & schema"
   echo -e  "\t--mode Mode of build : single or cluster"
   exit 1
}
while [[ "$#" -gt 0 ]]; do
    case $1 in
        -h|--help) helpFunction; shift ;;
        -r|--reload) reload=true; shift ;;
        -m|--mode) mode="single"; shift ;;
        # ... (same format for other required arguments)
        *) echo "Unknown parameter passed: $1" ;;
    esac
    shift
done
./bin/sh/tools/build.sh -e local -m $mode -p local
For now, the $mode variable seems to not be set if I don't set it, how can I have a default value for this variable ? (default is single)
What I want is the user to call the script like (reload is true, mode is cluster):
bin/script.sh -r --mode=cluster 
Or by default (reload is false, mode is single):
bin/script.sh
Is this the good way to wait for parameters ? I read other ways, but no real explanations.
Thanks.
 
     
    