2013-07-16 1 views
0

Я хочу, чтобы развернуть параметр дегтя --exclude через переменную как:Bash: расширение параметров из переменной. Как?

set -x verbose 
EXC=AAA,BBB 
echo --exclude={$EXC} > /dev/null 

Выход: echo '--exclude={AAA,BBB}'

Но я ожидаю: echo --exclude=AAA --exclude=BBB

Я пробовал различные заклинания, но ничего .. Что случилось ?

ответ

1

Чтобы выполнить синтаксический анализ строки после замены переменной, необходимо использовать eval.

eval "echo --exclude={$EXC}" 
+0

Спасибо, Бармар! Это работает! – user2586709

+0

Вот почему: расширение брекета происходит * перед расширением переменной. 'eval' передает строку через 2-й раунд расширений - http://www.gnu.org/software/bash/manual/bashref.html#Shell-Expansions –