Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Bucle Until Y Los Argumentos Posicionales

Bucle Until Y Los Argumentos Posicionales
Artículo
Responder citando    Descargar mensaje  
Mensaje Bucle Until Y Los Argumentos Posicionales 
 
Hola!.

Creando un bucle until, se me ocurrió que se podía mostrar los argumentos posicionales.
Ejemplo, primero hice un bucle que cuenta de 5 hasta 1.

#!/bin/bash

# Ejemplo de bucle Until

variable=5
until [ $variable -lt 1 ];
do
        echo "variable vale: " $variable
        let variable-=1
done
 


Entonces usando el mismo programa quise a la vez mostrar los argumentos posicionales, pero no me funciona (por ahora).

#!/bin/bash

# Ejemplo de bucle Until
# variable almacena el número de argumentos

variable=$#
until [ $variable -lt 1 ];
do
        echo "La variable vale: " $variable
#       Esta linea os muestro los cambios abajo para que veáis los efectos que hace
        let variable-=1
done
 


$# Nos da el número de argumentos pasados
Si sabemos que los argumentos posicionales son $0 $1 $1 $3, que son los valores que le pasamos como argumentos a nuestro
script.

Si hago esto:

echo "El argumento vale: "$"$variable"
 


La salida es esta:
Citar:

jack@claudio:~/Scripts/bucles$ ./BucleUntil2.sh  pepe juan manuel
La variable vale:  3
El argumento vale: 3
La variable vale:  2
El argumento vale: 2
La variable vale:  1
El argumento vale: 1


Si hago esto:
echo "El argumento vale: "$$variable
 


Aun más raro, mostrando un valor.
Citar:

La variable vale:  3
El argumento vale: 3876variable
La variable vale:  2
El argumento vale: 3876variable
La variable vale:  1
El argumento vale: 3876variable


Continuare buscando información.
Creo que me toca visitar videotutoriales también.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 05 Marzo 2015, 19:56 ]
 


Bucle Until Y Los Argumentos Posicionales
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Bucle Until Y Los Argumentos Posicionales 
 
Citar:

Aun más raro, mostrando un valor.


$$ nos da el PID del Shell que ejecuta el Script. Por eso sale ese número

Los parámetros

Fuente:

http://es.kioskea.net

Podéis probar a hacer:

echo $$
 


Citar:

jack@claudio:~/Scripts/bucles$ ps
  PID TTY          TIME CMD
 4265 pts/2    00:00:00 bash
 5365 pts/2    00:00:00 ps
jack@claudio:~/Scripts/bucles$ echo $$
4265


Saludos



 
última edición por Shell el Jueves, 05 Marzo 2015, 21:28; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 05 Marzo 2015, 21:28 ]
Responder citando    Descargar mensaje  
Mensaje Re: Bucle Until Y Los Argumentos Posicionales 
 
Lo he resuelto con un array.

#!/bin/bash

# variable almacena el número de argumentos
variable=$#

# El contenido de argumentos debe ir entre paréntesis
argumentos=($*)

# Declaramos argumentos como un array
declare -a argumentos

until [ $variable -lt 1 ];
do
        echo "La variable vale: " $variable
        echo "El argumento vale: " ${argumentos[$variable-1]}
        let variable-=1
done
 


La salida fue:
Citar:

jack@claudio:~/Scripts/bucles$ ./BucleUntil3.sh pepe juan manolo
La variable vale:  3
El argumento vale:  manolo
La variable vale:  2
El argumento vale:  juan
La variable vale:  1
El argumento vale:  pepe


Tengo que ver como se hace para que las cadenas queden mejor presentadas.  

Saludos



 
última edición por Shell el Jueves, 05 Marzo 2015, 22:07; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 05 Marzo 2015, 22:06 ]
Responder citando    Descargar mensaje  
Mensaje Re: Bucle Until Y Los Argumentos Posicionales 
 
Citar:
until [ $variable -lt 1 ];


Sin llegar al fondo del tema, es lógico que $variable te de número de argumento... si $variable fuese pepe ¿Cómo ibas a compararlo con 1?



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Viernes, 06 Marzo 2015, 08:56 ]
Responder citando    Descargar mensaje  
Mensaje Re: Bucle Until Y Los Argumentos Posicionales 
 
Shordi:

Efectivamente en este caso, variable es un número.
Por eso lo asigne a variable, el número de argumentos que se le pasa al script. $#

El problema realmente es hacer que con un bucle distinto a For, mostrar los parámetros.
El For del Shell, no es el típico For. Es un For Each. Trabaja sobre argumentos, no sobre números.

Por otro lado tu sabes que $0 es el nombre del script y después de esté. $1,$2,$3...son los argumentos.

Realmente llevo 3 días con estas cosas. Estoy algo verde. Siempre he tirado de gambas para hacer estas cosas.
No es fácil dar los primeros pasos. Idea tenía, pero no suelo usar Scripting Shell, es como si le quitase
protagonismo a gambas. Nos acostumbramos a hacer las cosas de una manera, cuando existen siempre
alternativas. Como siempre, el problema del tiempo es obvio

Aprender esto, me ha llevado a unos día a dejar estudiar Python y gambas, claro.
Demasiados frentes abiertos. Aunque no me canso de hacerlo.  
Hay que bucear mucho para encontrar a veces las soluciones.

Saludos



 
última edición por Shell el Viernes, 06 Marzo 2015, 10:50; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 06 Marzo 2015, 10:48 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron