2012-02-06 26 views
6

¿Alguien puede decirme qué significa $* en bash scripting?

He intentado buscar en google, pero he encontrado solo $0, $1 y más.

Por lo tanto, si tiene un enlace para esto, es bienvenido.

Gracias!

Respuesta

8

Desde la página man:

* expande a los parámetros posicionales, empezando por uno. Cuando la expansión ocurre dentro de comillas dobles, se expande a una sola palabra con el valor de cada parámetro separado por el primer carácter de la variable especial IFS. Es decir, "$*" es equivalente a a "$1 c $2 c ...", donde c es el primer carácter del valor de la variable IFS. Si IFS no está configurado, los parámetros están separados por espacios . Si IFS es nulo, los parámetros se unen sin separadores intermedios.

Por lo tanto, es equivalente a todos los parámetros posicionales, con una semántica ligeramente diferente dependiendo de si está entre comillas o no.

3

Son todos los argumentos que se pasan al script, excepto divididos por palabra. Casi siempre quiere usar "[email protected]" en su lugar. Y todo está en la página del manual bash(1).

3

Es la lista de argumentos suministrados en la línea de comandos para el script. $ 0 será el nombre del script.

1

Es una cadena separada por espacios de todos los argumentos. Por ejemplo, si $1 es "hola" y $2 es "mundo", entonces $* es "mundo hello". (A menos que se configure $ IFS, se trata de una cadena separada por $ IFS).

3

Puede utilizar el motor de búsqueda de Symbolhound para buscar códigos que google no buscará.

para su búsqueda click here

+0

Gracias. ¡Es muy útil para mi! – artaxerxe

0

Si ve en $ prefijo con cualquier cosa, significa que es una variable. El valor de la variable se usa.

Ejemplo:

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

salida del script anterior:

100 
Count Value = 100 
+0

Aunque la afirmación que hace es correcta, la pregunta era "¿Qué significa $ *? – maninvan

Cuestiones relacionadas