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….

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