Inicio > Unix > fragal > Pregunta de for en unix

Pregunta de for en unix

Experto:
Usuario:
Fecha: 14/07/2004
Valoración: (5,00 sobre 5) Categoría: Unix
08/07/2004
alfuentes, usuario preguntando en Unix
Usuario
Hola Frgal

Mi pregunta es acerca de un clico for en unix, estoy haciendo un shell para repetir la misma tarea en varios servidores.utilizo el bucle for con la opcion in, esta ultima para que me tome la lista de los equipos de un archivo. como lo estoy poiiendo es asi:

for i in servidores
> do
> ping $i
> done
pero al moento de correorlo me toma el nombre del archivo en lugar del contenido.la forma en que si corre es poniendo los servidores asi:
for i in servidor1 servidor2 .. servidorn
> do
> ping $i
> done

me podrias ayudar

saludos
09/07/2004
alfuentes, experto respondiendo en Unix
Experto
Hola,
Sencillamente, en la sentencia for debes poner:

for i in `cat servidores`
do
ping $i
done

donde ` es el acento grave (tecla a la derecha de la p pulsando esta tecla y luego "barra espaciadora") y suponiendo que en el fichero servidores está la lista de servidores. Con el for se lee cada línea en cada iteración siempre que no haya espacios en blanco en una línea(supongo que es tu caso pues los nombres de servidores no tienen espacios). Si hubiera espacios en blanco, se debería usar la sentencia while:

while read i
do
ping $i
done < servidores

que hace lo mismo que el bucle que tú propones pero permite espacios en blanco en cualquiera de las líneas.
Espero haberte ayudado.
Un saludo
14/07/2004
alfuentes, usuario preguntando en Unix
Usuario
muchas gracias fragal ya o probe y me funciono de maravilla
Más opciones
Enlaces patrocinados