【问题标题】:Where does shell "argument files" or "@ files" originate from?shell“参数文件”或“@文件”来自哪里?
【发布时间】:2019-06-10 18:49:35
【问题描述】:

JCommander,一个用于向基于 Java 的应用程序添加 CLI 支持的库,指的是“参数文件”或“@ 文件”的概念和 @ 语法。虽然我理解这个概念,但它起源于哪里?除了支持这个概念的更多库之外,我找不到任何其他来源(但不要参考真实来源)。

总而言之,这是一种将 shell 程序参数组织在文件中而不是直接在命令行上的方法。简单例子:

> program a b c

变成

> program @myfile

我的文件:

# myfile
a
b
c

据说这是为了解决字符限制或定义预配置的程序执行。

我想从我自己的文档中引用这个概念,但不必将少数库作为二手文档。

【问题讨论】:

    标签: command-line-interface command-line-arguments


    【解决方案1】:

    虽然我找不到关于 @-files 来源的文档,但我想分享支持此功能的其他工具。有可能是某个较旧的工具产生了这个想法。

    请随意编辑此答案并添加到列表中。

    • gnu gcc(滚动到底部)记录格式。请注意,gcc 支持递归引用。
    • javac 支持@files,documents 支持格式。 Javac 不支持递归引用。
    • java 支持@files(这可以用--disable-@files 关闭)。支持的格式为documented in detail
    • javadoc 支持 @files。这是briefly documented
    • 上面提到的JCommander库supports@files,但是没有记录支持的语法。
    • picocli,另一个为JVM应用程序添加CLI支持的库,也支持@-files,支持的格式是documented。支持递归引用。 Picocli 还提供了simplified format 以与 JCommander 兼容。

    相关

    • curl 有一些选项可以从命令行或文件中获取数据,使用 @ 前缀表示选项参数是文件名

    【讨论】:

      猜你喜欢
      • 2018-12-22
      • 2010-09-26
      • 2017-04-24
      • 2023-03-28
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多