$*
在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用于表示命令中的零个或多个常见特征。
当你找到平均数或总数时,就会出现这种情况。
$#要在数字中传递的参数数$*传递的所有参数的数目