This is the easiest way I found of defining flags to set variables in a bash script.
letβs call this file flags.sh
:
#!/bin/bash
while [ ! $# -eq 0 ]
do
case "$1" in
--name | -n)
NAME="$2"
;;
--id)
ID="$2"
;;
# etc
esac
shift
done
This way I can source
the file flags.sh
and have the variables $NAME
and $ID
available, like this:
in main.sh
#!/bin/bash
source flags.sh
echo "NAME: $NAME"
echo "ID: $ID"
Awesome, right!? The same for functions (you get the point)
in functions.sh
#!/bin/bash
function print_name {
echo "NAME: $1"
}
and again, in main.sh
:
#!/bin/bash
source flags.sh
source functions.sh
print_name $NAME