Это пример использования getopts в k sh.
#!/bin/ksh
DEFAULT_SITE_NAME="a.b.c.d"
SITE_NAME=$DEFAULT_SITE_NAME
USAGE="[-author?Andre Gelinas]"
USAGE+="[-copyright?2020]"
USAGE+="[+NAME?getopts.sh --- Example of getopts]"
USAGE+="[+DESCRIPTION?Example of getopts usage in ksh.]"
USAGE+="[s:site]:?[site:=$DEFAULT_SITE_NAME?Site name.]"
USAGE+="[p:param]:[param?Parameters to test.]"
USAGE+=$'[+SEE ALSO?\aMAN Page\a(1)]'
while getopts "$USAGE" optchar ; do
case $optchar in
p) PARAM_TO_PRINT=$OPTARG ;;
s) SITE_NAME=$OPTARG ;;
esac
done
print "Paramters [p] : "$PARAM_TO_PRINT
print "Site [s] : "$SITE_NAME
. Он поддерживает короткий (-p) и длинный (--param =) тип опции. Параметр -s приведен только в качестве примера необязательного параметра со значением по умолчанию. Он также поддерживает --help и --man для использования.
Пример:
$ ./getopts.sh --param="a b c" --site=t.t.t.t
Paramters [p] : a b c
Site [s] : t.t.t.t
$ ./getopts.sh -p "a b c"
Paramters [p] : a b c
Site [s] : a.b.c.d