shell脚本中$ *的含义是什么

时间:2012-09-13 19:57:22

标签: linux bash shell unix special-characters

$*在shell脚本中的确切含义是什么?

例如,请考虑以下代码段

$JAVA_HOME/bin/java/com/test/Testclass $*

3 个答案:

答案 0 :(得分:7)

它表示传递给脚本或函数的所有参数,按字词分割。

通常是错误的,应该用"$@"替换,它会正确地分隔参数。

答案 1 :(得分:6)

您可以轻松找到自己的答案:man bash/\$\*

  

特殊参数

     

shell专门处理几个参数。这些参数只能被引用;不允许分配给他们。

     
      
  • 从1开始扩展到位置参数。当扩展发生在双引号内时,它会扩展为单个单词,每个参数的值由 IFS 特殊变量的第一个字符分隔。也就是说,"$*"相当于"$1c$2c...",其中c IFS 变量值的第一个字符。如果未设置 IFS ,则参数以空格分隔。如果 IFS 为null,则无需插入分隔符即可连接参数。
  •   

答案 2 :(得分:1)

$*扩展为传递给该shell脚本的所有参数。

$0 = shell脚本的名称

$1 =第一个参数

$2 =第二个参数 ...等

$# =传递给shellscript的参数数量