Я пытаюсь получить следующее в качестве действительных вызовов моего сценария:Оболочка: установить необязательный аргумент или использовать значение по умолчанию с помощью getopts?
sh name.sh -l -a
sh name.sh -l
Это код, который я до сих пор с помощью getopts, где -a является обязательным аргументом:
default="no"
echo "Initial parameters.
while getopts ":l:a:" o; do
case "${o}" in
l)
...;;
a)
a+=(${OPTARG})
IFS=',' read -a myarray <<< "$a"
default="yes"
;;
:)
echo "Missing option argument for -$OPTARG" >&2; exit 1;;
*)
usage;;
esac
done
shift $((OPTIND-1))
if [ -z "${l}" ] || [ -z "${a}" ] ; then
usage
fi
Мне просто нужно знать, как установить в getopts необязательный флаг -a с его аргументом. Спасибо :)
Возможный дубликат [опциональный аргумент с getopts] (http://stackoverflow.com/questions/11517139/optional-option-argument-with-getopts) – qzb
@qzb нет, я использую getopts и не хочу обойтись без него. – Momina