任何人都可以告诉我$*
在bash脚本中的含义是什么?
我试图在谷歌搜索它,但我发现只有约$0
,$1
等。
所以,如果有这个链接,是值得欢迎的。
谢谢!
任何人都可以告诉我$*
在bash脚本中的含义是什么?
我试图在谷歌搜索它,但我发现只有约$0
,$1
等。
所以,如果有这个链接,是值得欢迎的。
谢谢!
看到这个页面:
http://tldp.org/LDP/abs/html/internalvariables.html#IFSEMPTY
的$ *和$ @的行为,当$ IFS为空取决于 +运行Bash或sh版本正在运行。 因此,在脚本中依赖这个“特征”是不可取的。
从man
页:
*
展开为位置参数,从1开始。当扩展出现在双引号内时,它扩展为单个 字,每个参数的值由IFS特殊变量的第一个字符分隔。也就是说,“$*
”相当于 到“$1
c$2
c ...”,其中c是IFS变量值的第一个字符。如果IFS未设置,则参数将以空格分隔 。如果IFS为空,则参数在没有介入分隔符的情况下连接。
因此,它等价于所有的位置参数,具有稍微不同的语义,具体取决于它是否在引号中。
这是所有传递给脚本的参数,除了按字分开。你几乎总是想用"[email protected]"
代替。这一切都在bash(1)
手册页中。
将命令行中提供的参数列表添加到脚本中。$ 0将是脚本名称。
这是一个空格分隔的所有参数字符串。例如,如果$1
是“你好”,并且$2
是“世界”,那么$*
是“你好世界”。 (除非$ IFS被设置;然后它是一个$ IFS分隔的字符串。)
您可以使用symbolhound搜索引擎来查找谷歌不会查找的代码。
您所查询的click here
如果您在与任何前缀看到$
,这意味着它的一个变量。使用变量的值。
例子:
count=100
echo $count
echo "Count Value = $count"
上面的脚本输出:
100
Count Value = 100
尽管您所做的陈述是正确的,但问题是“什么是$ *是什么意思? – maninvan 2015-06-30 18:49:27
谢谢。这对我来说是非常有帮助的! – artaxerxe 2012-02-06 09:38:43