У меня есть Ant build.xml
сценарий, который включает в себя следующий фрагмент:Подстановочный знак двойной звездочки означает что-либо отдельно от `globstar`?
<fileset dir="${project.home}/${project.lib}">
<include name="**/*.jar"/>
</fileset>
В соответствии с ответами на this question и Bash documentation, двойной звездочка указывает globstar
сопоставления с образцом:
globstar
Если установлено, шаблон '**', используемый в контексте расширения имени файла, будет соответствовать всем файлам и нулю или более каталогам и подкаталогам. Если , за шаблоном следует '/', только каталоги и подкаталоги .
Это, кажется, смысл, в котором тот, кто написал код, имел в виду, чтобы работать: не найти все .jar
файлы в каталоге библиотеки проекта, независимо от того, сколько каталогов глубоко.
Однако код обычно выполняется в оболочке Bash, для которой отключена настройка globstar
. В этом случае кажется, что двойная звездочка должна интерпретироваться как одна звездочка, которая разбила бы сборку. Тем не менее, сборка выполняется отлично.
Есть ли какой-либо сценарий вне globstar
, для которого оболочка Bash будет интерпретировать **
никак иначе, чем *
? Например, делает ли одна установка extglob
отличительной? Документация по этому вопросу кажется редкой.
Спасибо! Я искал «Ant double asterisk», «Ant **», «XML double asterisk», «XML **» и т. Д., И я никогда не нашел ничего, кроме ссылок на возведение в степень (чего это явно не так), пока «UNIX двойная звездочка "доставила меня к« globstar »Баша. Вот почему я предположил, что это имеет какое-то отношение к Башу. В очередной раз благодарим за помощь! – JonahHuron