elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Bucles tipo C/C++ en Bash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bucles tipo C/C++ en Bash  (Leído 4,570 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Bucles tipo C/C++ en Bash
« en: 30 Octubre 2010, 07:42 am »

Hola, hace rato que quería escribir esto.

Yo honestamente prefiero los ciclos tipo C que los que brinda la shell, así que relato un poco como utilizarse, varía un poco, pero practicamente es la misma.

FOR:


Código
  1. for((i = 0; i < 10; i++))
  2. do
  3. echo -e "Contador : ${i}";
  4. done
  5.  


Código
  1. #!/bin/bash
  2. for((i = 0; i < 10; ))
  3. do
  4. echo -e "Contador : ${i}";
  5. ((i++));
  6. done
  7.  

WHILE:

Código
  1. #!/bin/bash
  2. ((i = 0));
  3. while((i <= 10))
  4. do
  5. echo -e "${i}";
  6. ((i++));
  7. done
  8.  


Código
  1. #!/bin/bash
  2. ((i = 0));
  3. while((i++ <= 10))
  4. do
  5. echo -e "${i}";
  6. done
  7.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Bucles tipo C/C++ en Bash
« Respuesta #1 en: 30 Octubre 2010, 17:19 pm »

Pero si en While lo que intentas es declarar la variable "i" no seria mas comodo

Código
  1. i= 0
  2.  

en vez de hacer

Código
  1. ((i = 0));
  2.  

para mi me parece mas "limpio"


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Bucles tipo C/C++ en Bash
« Respuesta #2 en: 30 Octubre 2010, 21:09 pm »

Lo de la iniciaciòn es lo de menos, eso no lo querìa resaltar, lo que querìa resaltar es la similitud entre los ciclos. Lo demàs es irrelevante.

Además de que lanzaría un error declarando la variable como tu dices:

Código:
leo@leo-desktop:~/Escritorio$ cat shell.sh 
#!/bin/bash
i= 3
echo -e "Valor : ${i}";
leo@leo-desktop:~/Escritorio$ bash shell.sh
shell.sh: line 2: 3: orden no encontrada
Valor :
leo@leo-desktop:~/Escritorio$

La correcta declaración con espacios es como ya lo indiqué.
« Última modificación: 30 Octubre 2010, 23:57 pm por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Afsoon

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Bucles tipo C/C++ en Bash
« Respuesta #3 en: 31 Octubre 2010, 18:58 pm »

Vale si tienes razon pero normalmente no me sale eso
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Bucles tipo C/C++ en Bash
« Respuesta #4 en: 31 Octubre 2010, 19:03 pm »

¿Qué shell estás usando?
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
JuszR


Desconectado Desconectado

Mensajes: 2.866


Programming & RI


Ver Perfil
Re: Bucles tipo C/C++ en Bash
« Respuesta #5 en: 3 Noviembre 2010, 09:18 am »

Yo si solo quiero una secuencia prefiero el otro (un poco más claro):
Código
  1. for i in 1..10
  2. do
  3.    echo -n "$i "
  4. done
  5.  
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Bucles tipo C/C++ en Bash
« Respuesta #6 en: 4 Noviembre 2010, 01:44 am »

Supongo que querías decir:

Código
  1. #!/bin/bash
  2. for i in $(seq 1 1 10)
  3. do
  4. echo -e "$i ";
  5. done
  6.  

Código
  1. #!/bin/bash
  2. for i in `echo {1..10}`
  3. do
  4. echo -e "$i";
  5. done
  6.  
« Última modificación: 4 Noviembre 2010, 02:08 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines