# Bash Flags

## Brandon Rozek

August 6, 2019

I was creating a bash script and was looking around for a solution for parsing command line arguments. This StackOverflow post has a variety of different solutions available. I want to describe my favorite of these posts.

Inanc Gumus proposed the following:

#!/bin/bash

while [[ "$#" -gt 0 ]]; do case$1 in
-d|--deploy) deploy="$2"; shift;; -u|--uglify) uglify=1;; *) echo "Unknown parameter passed:$1"; exit 1;;
esac; shift; done

echo "Should deploy? $deploy" echo "Should uglify?$uglify"

Let me quickly describe what it does. While the number of arguments left to process is greater than zero….

• Check to see if the argument matches any of the flags
• If it does…
• If the flag requires an additional argument grab it. Then discard an argument.
• If it doesn’t. Error out.
• Then get rid of an argument.

At the end of the while loop, you would’ve evaluated all the arguments!