2013-05-14 28 views

回答

2

[email protected]是传递的所有参数的值。

例如,如果传递:

./script A B C D 

然后“$ @”将等于"A" "B" "C" "D"

所以看起来目的是过时传递给脚本直接将所有参数java程序。

从bash的手册:

@展开为位置参数,从1开始。当 扩展出现在双引号内时,每个参数 扩展为单独的单词。也就是说,“$ @”相当于“$ 1”“$ 2”...如果在 字中出现双引号扩展 ,则将第一个参数的扩展与原始单词的开头部分结合起来,并且 最后一个参数的扩展与原始单词的最后一部分结合在一起。当没有位置参数时,“$ @”和$ @将 扩展为空(即,它们被移除)。

+0

更正您的示例,如您的报价中所示:'$ @'是特殊的,''@ @'''您的情况会扩展到'“A”“B”“C”“D”'。这与'$ *'不同,后者将扩展到'A B C D''。 – hyde 2013-05-14 06:31:43