在某些内容之前放置“@”会产生什么影响(比如包含Java运行命令的类路径条目的文件的路径)?
我知道这与文件内容有关,但您可以想象在Google上搜索它有点困难。我无法找到谈论它的联机帮助页。
答案 0 :(得分:1)
{1}}字符在Unix命令行中没有一般含义。它有一些受欢迎的公用事业使用。以@
中的@
开头的命令告诉Makefile
在执行之前不要回显该行。 GNU Autoconf会将make
- 括号变量(例如@
)替换为@srcdir@
发现的替换变量。
答案 1 :(得分:1)
在不同的程序中它可能意味着不同的东西。作为约定,命令行中的@file可以解释为:
从文件中读取命令行选项。读取的选项将被插入 原始@file选项的位置。如果文件不存在,或者不能存在 阅读,然后该选项将按字面处理,而不是删除。 文件中的选项由空格分隔。一个空白字符 可以通过包围整个选项包含在选项中 单引号或双引号。任何角色(包括反斜杠) 可以通过为要包括的字符添加前缀来包括 反斜杠。该文件本身可能包含其他@file选项;任何 这些选项将以递归方式处理。 from
ld
docs for @file
答案 2 :(得分:1)
shell专门处理几个参数。这些参数可能 只被引用;不允许分配给他们。
(...)
@
从一个开始扩展到位置参数。当。。。的时候 扩展发生在双引号内,每个参数扩展为a 单词。也就是说,“$ @”相当于“$ 1”“$ 2”....如果 双语扩张发生在一个词内,扩展了 第一个参数与原始的开头部分连接在一起 单词,并将最后一个参数的扩展与最后一个参数连接起来 原始单词的一部分。没有位置参数时 “$ @”和$ @扩展为空(即,它们被移除)。
(...)
您可以在任何程序的参数中使用@(at-sign)而无需转义。
如果您必须在参数中传递此$@
之类的内容 - 您必须仅转义$
(美元符号)。