[TIL] How to parse flags passed to a bash script
TIL how to parse flags passed to a bash script, using the built-in function
getopts.
Let’s say you have a script named maintenance.sh, to which you’d like to pass
some flags:
-e-d-f filename
These flags can be parsed in the script, like so:
while getopts edf: flagdo case "${flag}" in e) echo "Got flag -e";; d) echo "Got flag -d";; f) echo "Got flag -f with respective option ${OPTARG}";; esacdoneNotice in the arguments of getopts that f is the only flag that is followed
by :, which is used to indicate that the flag is followed by a respective
value.
Script can then be called as sh maintenance.sh -e or sh maintenance.sh -e -f file.json, for example.
See: