Откуда берутся «аргументные файлы» или «@ files» оболочки? - PullRequest
0 голосов
/ 01 января 2019

JCommander , библиотека для добавления поддержки CLI в приложения на основе Java, относится к понятию «файлы аргументов» или «@ files» и синтаксис @.Пока я понимаю концепцию, откуда она берется?Я не смог найти никаких других источников, кроме большего количества библиотек, которые также поддерживают эту концепцию (но не ссылаются на реальные источники).

Подводя итог, это способ организовать аргументы программы оболочки вфайл вместо непосредственно в командной строке.Простой пример:

> program a b c

Становится

> program @myfile

myfile:

# myfile
a
b
c

Предположительно, это позволяет обойти ограничения символов или определить предварительно сконфигурированные исполнения программ.

Я хотел бы сослаться на эту концепцию из моей собственной документации, но не обязательно указывать на несколько библиотек как на подержанную документацию.

1 Ответ

0 голосов
/ 10 июня 2019

Хотя я не смог найти документацию о происхождении @ -файлов, я хотел бы поделиться другими инструментами, которые поддерживают это.Вполне возможно, что один из старых инструментов породил эту идею.

Не стесняйтесь редактировать этот ответ и добавить в список.

  • gnu gcc (прокруткавниз) документы в формате.Обратите внимание, что gcc поддерживает рекурсивные ссылки.
  • javac поддерживает @files и документы в поддерживаемом формате.Javac не поддерживает рекурсивные ссылки.
  • java поддерживает @files (и это можно отключить с помощью --disable-@files).Поддерживаемый формат подробно задокументирован .
  • javadoc поддерживает @files.Это кратко документировано .
  • Вышеупомянутая библиотека JCommander поддерживает @files, но поддерживаемый синтаксис не документирован.
  • picocli , другая библиотека для добавления поддержки CLI в приложения JVM, также поддерживает @ -файлы, и поддерживаемый формат документирован .Рекурсивные ссылки поддерживаются.Picocli также предлагает упрощенный формат для совместимости с JCommander.

Related

  • curl имеет некоторые параметры, которые принимают данныев командной строке или из файла, используя префикс @, чтобы указать, что параметр option является именем файла
...