from: digitalpeer.com с незначительными модификациями
Использование myscript.sh -p=my_prefix -s=dirname -l=libname
#!/bin/bash
for i in "$@"
do
case $i in
-p=*|--prefix=*)
PREFIX="${i#*=}"
;;
-s=*|--searchpath=*)
SEARCHPATH="${i#*=}"
;;
-l=*|--lib=*)
DIR="${i#*=}"
;;
--default)
DEFAULT=YES
;;
*)
# unknown option
;;
esac
done
echo PREFIX = ${PREFIX}
echo SEARCH PATH = ${SEARCHPATH}
echo DIRS = ${DIR}
echo DEFAULT = ${DEFAULT}
Чтобы лучше понять ${i#*=}
поиск «Удаление подстроки "в этом руководстве . Он функционально эквивалентен `sed 's/[^=]*=//' <<< "$i"`
, который вызывает ненужный подпроцесс или `echo "$i" | sed 's/[^=]*=//'`
, который вызывает два ненужных подпроцесса.