$*在bash脚本中意味着什么



$*在bash脚本中意味着什么?

我试着在谷歌上搜索它,但我只找到了$0$1等等

man页面:

*扩展到位置参数,从一开始。当展开出现在双引号内时,它会展开为单引号每个参数的值由IFS特殊变量的第一个字符分隔的单词。也就是说,"$*"是等价的到"$1 c $2 c…",其中c是IFS变量值的第一个字符。如果IFS未设置,则参数是分开的通过空格。如果IFS为null,则在不插入分隔符的情况下连接参数。

因此,它相当于所有的位置参数,根据它是否在引号中,语义略有不同。

请参阅此页:

http://tldp.org/LDP/abs/html/internalvariables.html#IFSEMPTY

$IFS为空时$*和$@的行为取决于+在哪个Bash或sh版本上运行。因此,在脚本中依赖这个"特性"是不可取的。

这是传递给脚本的所有参数,按单词拆分除外。您几乎总是希望使用"$@"。这都在bash(1)手册页上。

它是在脚本的命令行上提供的参数列表$0将是脚本名称。

这是一个由所有参数组成的空格分隔字符串。例如,如果$1是"你好",$2是"世界",则$*是"你好世界"。(除非设置了$IFS;否则它是一个由$IFS分隔的字符串。)

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

对于您的查询,请单击此处

如果在前缀中看到$有任何内容,则表示它是一个变量。将使用变量的值。

示例:

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

上述脚本的输出:

100
Count Value = 100

作为一个独立的命令,它在bash脚本中没有任何意义。但是,根据命令中的用法,它用于指示对具有一些常见特征的文件/文件夹的常见操作。

grep用于表示命令中的零个或多个常见特征。

当你找到平均数或总数时,就会出现这种情况。

$#要在数字中传递的参数数$*传递的所有参数的数目

最新更新