Bash中的$ @是什么?
我认为shell脚本中的句柄$@
是给脚本的所有参数的数组。 这是真的?
我问,因为我通常使用search引擎来收集信息,但我不能谷歌$@
,我已经习惯了太容易获得服务的一切。
是。 请参阅特殊参数下的bash的手册页(首先进行的操作)
特殊参数
shell专门处理几个参数。 这些参数只能被引用; 不允许分配给他们。
*
从一个开始扩展到位置参数。 当扩展出现在双引号内时,扩展为单个字,每个参数的值由IFS特殊variables的第一个字符分隔。 也就是说,"$*"
相当于"$1c$2c..."
,其中c
是IFSvariables值的第一个字符。 如果IFS未设置,则参数由空格分隔。 如果IFS为空,则参数在不插入分隔符的情况下进行连接。
@
从一个开始扩展到位置参数。 当扩展出现在双引号内时,每个参数将扩展为一个单独的单词。 也就是说,"$@"
相当于"$1"
"$2"
…如果双引号扩展出现在一个单词内,则第一个参数的扩展与原始单词的开始部分相连,最后一个参数的最后一部分与原始单词连接。 当没有位置参数时,"$@"
和$@
展开为空(即,它们被移除)。
只是从阅读我不会理解"$@"
扩展到一个单独的参数列表。 而"$*"
是由所有参数加在一起组成的一个参数。
如果这样做仍然没有意义。
http://www.thegeekstuff.com/2010/05/bash-shell-special-parameters/