Parsing arguments in bash script
you can access positional arguments through the $1
$2
etc. varaibles and $#
contains the number of positional arguments, but what if you want to parse more advanced, non positional arguments? this simple snippet that i stole from here provides an elegant and quick solution:
interactive= filename=~/sysinfo_page.html while [ "$1" != "" ]; do case $1 in -f | --file ) shift filename=$1 ;; -i | --interactive ) interactive=1 ;; -h | --help ) usage exit ;; * ) usage exit 1 esac shift done