在某些东西(比如包含Java运行命令的类路径条目的文件的路径)前面加上“@”会有什么效果?我知道这与文件内容有关,但你可以想象,试图在谷歌上搜索它有点困难。我也找不到一个关于它的手册页。
n3ipq98p1#
它在不同的程序中可能意味着不同的东西。作为一种约定,命令行中的@file可以解释为:从文件读取命令行选项。将插入读取的选项以代替原始的@file选项。如果文件不存在或无法读取,则该选项将按字面意思处理,而不是删除。文件中的选项由空格分隔。空格字符可以包含在选项中,方法是用单引号或双引号将整个选项括起来。任何字符(包括反斜杠)都可以通过在要包括的字符前面加上反斜杠来包括。文件本身可能包含附加的@file选项;将递归地处理任何这样的选项。from ld docs for @file
ld
klr1opcd2#
@字符在Unix命令行中没有一般意义。它被一些流行的实用程序使用。Makefile中以@开头的命令告诉make在执行该行之前不要回显该行。GNU Autoconf将用configure发现的替换来替换@封闭的变量,如@srcdir@。
@
Makefile
make
configure
@srcdir@
sigwle7e3#
Bash参考手册:shell特别处理几个参数。这些参数只能参考;不允许分配给它们。(...)@展开到位置参数,从1开始。当展开发生在双引号内时,每个参数都展开为一个单独的单词。也就是说,“$@”相当于“$1”“$2”……。如果双引号扩展出现在单词中,则第一个参数的扩展与原始单词的开始部分连接,最后一个参数的扩展与原始单词的最后部分连接。当没有位置参数时,“$@”和$@扩展为空(即,它们被移除)。(...)您可以在任何程序中使用@(at-sign)in参数,而无需转义。如果你必须在参数中传递像这样的东西$@-你必须只转义$(美元符号)。
$@
$
9jyewag04#
Python argparse还内置了对@opts.txt的支持,如果使用fromfile_prefix_chars选项启用,则可以从文件opts.txt中获取CLI选项:在Python中允许在命令行重写配置选项的最佳方式是哪种?然而,该语法是如此疯狂,它可能与名为@myfile的实际文件发生冲突,因此很少使用。理智的版本,它问:how to get argparse to read arguments from a file with an option rather than prefix
@opts.txt
fromfile_prefix_chars
opts.txt
@myfile
4条答案
按热度按时间n3ipq98p1#
它在不同的程序中可能意味着不同的东西。作为一种约定,命令行中的@file可以解释为:
从文件读取命令行选项。将插入读取的选项以代替原始的@file选项。如果文件不存在或无法读取,则该选项将按字面意思处理,而不是删除。文件中的选项由空格分隔。空格字符可以包含在选项中,方法是用单引号或双引号将整个选项括起来。任何字符(包括反斜杠)都可以通过在要包括的字符前面加上反斜杠来包括。文件本身可能包含附加的@file选项;将递归地处理任何这样的选项。from
ld
docs for @fileklr1opcd2#
@
字符在Unix命令行中没有一般意义。它被一些流行的实用程序使用。Makefile
中以@
开头的命令告诉make
在执行该行之前不要回显该行。GNU Autoconf将用configure
发现的替换来替换@
封闭的变量,如@srcdir@
。sigwle7e3#
Bash参考手册:
shell特别处理几个参数。这些参数只能参考;不允许分配给它们。
(...)
@
展开到位置参数,从1开始。当展开发生在双引号内时,每个参数都展开为一个单独的单词。也就是说,“$@”相当于“$1”“$2”……。如果双引号扩展出现在单词中,则第一个参数的扩展与原始单词的开始部分连接,最后一个参数的扩展与原始单词的最后部分连接。当没有位置参数时,“$@”和$@扩展为空(即,它们被移除)。
(...)
您可以在任何程序中使用@(at-sign)in参数,而无需转义。
如果你必须在参数中传递像这样的东西
$@
-你必须只转义$
(美元符号)。9jyewag04#
Python argparse还内置了对
@opts.txt
的支持,如果使用fromfile_prefix_chars
选项启用,则可以从文件opts.txt
中获取CLI选项:在Python中允许在命令行重写配置选项的最佳方式是哪种?然而,该语法是如此疯狂,它可能与名为@myfile
的实际文件发生冲突,因此很少使用。理智的版本,它问:how to get argparse to read arguments from a file with an option rather than prefix