[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Подстановка переменного числа аргументов



Здравствуйте.

Прошу прощения за такой элементарный и не совсем тематический вопрос, но это 
наиболее компетентная группа, которую я сейчас читаю.

Задача. В зависимости от некоторых условий необходимо вызвать команду с 
дополнительными аргументами или без них. Например:

   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: