Bucle Until Y Los Argumentos Posicionales


Subject: 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

Subject: 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

Last edited by Shell on Thursday, 05 March 2015, 21:28; edited 1 time in total
Subject: 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

Last edited by Shell on Thursday, 05 March 2015, 22:07; edited 1 time in total
Subject: 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?

Profile PM  
Subject: 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

Last edited by Shell on Friday, 06 March 2015, 10:50; edited 1 time in total

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.0901s (PHP: -20% SQL: 120%)
SQL queries: 25 - Debug Off - GZIP Enabled