Подстановка переменного числа аргументов
Здравствуйте.
Прошу прощения за такой элементарный и не совсем тематический вопрос, но это
наиболее компетентная группа, которую я сейчас читаю.
Задача. В зависимости от некоторых условий необходимо вызвать команду с
дополнительными аргументами или без них. Например:
if somecheck
then
OPTS="--foo $FOO"
else
OPTS=""
fi
bar -ziq $OPTS bla-bla-bla
Проблема в том, что $FOO может быть пустым (тогда подставится лишь один
аргумент --foo) или содержать пробелы (тогда подставится больше двух
аргументов).
Можно, конечно, написать:
if somecheck
then
bar -ziq --foo "$FOO" bla-bla-bla
else
bar -ziq bla-bla-bla
fi
И всё будет работать как надо. Но хотелось бы избежать дублирования,
постоянные аргументы вызова могут быть громоздкими. Не говоря уж о том, что
если будет несколько условий, код разрастётся в геометрической прогрессии.
Как быть?
Reply to: