Return to Snippet

Revision: 37837
at December 17, 2010 23:59 by miceno


Initial Code
#!/bin/bash

while getopts "u:p:" opt; do

  case $opt in
    u)
      echo "-u was triggered, Parameter: $OPTARG"
      dbuser="$OPTARG"
      ;;
    p)
      echo "-p was triggered, Parameter: $OPTARG"
      dbpass="$OPTARG"
      ;;
    \?)
      echo "Invalid option: -$OPTARG"
      exit 1
      ;;
    :)
      echo "Option -$OPTARG requires an argument."
      exit 1
      ;;
  esac


done

# Clear all options and reset the command line
shift $(( OPTIND -1 ))

# First parameter
if [ -z "$1" ]; then
    echo "usage: $0 [-u name] [-p password] file"
    exit
fi

Initial URL


Initial Description
How to combine getopts options with (-) and non-options.

After processing all options, variable OPTIND contains the value of the first non-option (commandline argument that doesn't start with (-)).

Shift command will clean previous commandline options.

Initial Title
Command line arguments for Bash with getopts

Initial Tags


Initial Language
Bash