2012-02-06 239 views
6

任何人都可以告诉我$*在bash脚本中的含义是什么?

我试图在谷歌搜索它,但我发现只有约$0,$1等。

所以,如果有这个链接,是值得欢迎的。

谢谢!

回答

8

man页:

*展开为位置参数,从1开始。当扩展出现在双引号内时,它扩展为单个 字,每个参数的值由IFS特殊变量的第一个字符分隔。也就是说,“$*”相当于 到“$1 c $2 c ...”,其中c是IFS变量值的第一个字符。如果IFS未设置,则参数将以空格分隔 。如果IFS为空,则参数在没有介入分隔符的情况下连接。

因此,它等价于所有的位置参数,具有稍微不同的语义,具体取决于它是否在引号中。

3

这是所有传递给脚本的参数,除了按字分开。你几乎总是想用"[email protected]"代替。这一切都在bash(1)手册页中。

3

将命令行中提供的参数列表添加到脚本中。$ 0将是脚本名称。

1

这是一个空格分隔的所有参数字符串。例如,如果$1是“你好”,并且$2是“世界”,那么$*是“你好世界”。 (除非$ IFS被设置;然后它是一个$ IFS分隔的字符串。)

3

您可以使用symbolhound搜索引擎来查找谷歌不会查找的代码。

您所查询的click here

+0

谢谢。这对我来说是非常有帮助的! – artaxerxe 2012-02-06 09:38:43

0

如果您在与任何前缀看到$,这意味着它的一个变量。使用变量的值。

例子:

count=100 
echo $count 
echo "Count Value = $count" 

上面的脚本输出:

100 
Count Value = 100 
+0

尽管您所做的陈述是正确的,但问题是“什么是$ *是什么意思? – maninvan 2015-06-30 18:49:27