🐟

getopsのすゝめ

に公開

TL;DR

$ ./sample.sh -p "Hello"
Hello
$ ./sample.sh -p
default
$ ./sample.sh -e
[ERROR] Unknown option: -e
[developer@mbse-pc02 runtime]$ cat ./sample.sh 
#!/bin/sh

DEFAULT="default"

while getopts :p: OPT; do
    case $OPT in
    "p") echo "$OPTARG" ;;
    ":")
        case $OPTARG in
        "p") echo "$DEFAULT" ;;
        *)
            echo "[ERROR] Option -$OPTARG requires an argument."
            exit 1
            ;;
        esac
        ;;
    ?)
        echo "[ERROR] Unknown option: -$OPTARG"
        exit 1
        ;;
    esac
done

Discussion