How to Parse Command-Line Arguments in Bash

Posted on November 4, 2020 at 12:01 pm

Need to parse command-line arguments in a bash script?

Personally I always use this method:

#!/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"

It is simple and has always worked fine for me.

Reference: https://stackoverflow.com/a/33826763/2972081

Here is an example usage:

./script.sh -d dev -u
# OR:
./script.sh --deploy dev --uglify

Receive updates via email

Other Posts

Updated Posts