Конечная цель
По сути, у меня есть время, когда я oop перебираю каждый аргумент командной строки, передаваемый скрипту, но хочу установить поведение по умолчанию, если аргументы не переданы.
Текущая идея решения
Мой план для этого состоит в том, чтобы проверить, есть ли какие-либо аргументы до этого, пока l oop, и если их нет, просто добавьте аргументы по умолчанию (в данном случае флаги) к массив аргументов и пусть сценарий выполняется оттуда как обычно.
Проблема у меня
Здесь я немного запутался, выясняя синтаксис для добавления этих аргументов по умолчанию к Сам массив аргументов (я могу получить значения из него без проблем).
Это то, что я имею до сих пор:
if test $# -eq 0
then
# ADD --default TO ARGUMENTS ARRAY HERE
fi
while test $# -gt 0
do
case "$1" in
--opt1) DO STUFF
;;
--opt2) DO MORE / OTHER STUFF
;;
--default) DO DEFAULT STUFF
;;
esac
shift
done
Следуя и изменяя примеры с использованием пользовательских массивов, которые я пробовал:
if test $# -eq 0
then
$+=('--default')
fi
Но просто получите синтаксическую ошибку
Синтаксическая ошибка рядом с неожиданным токеном `'--default' '