🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
9 messages
9 total messages Started by Olaf El Blanco Sat, 25 Feb 2006 10:42
BASH SCRIPT
#1215
Author: Olaf El Blanco
Date: Sat, 25 Feb 2006 10:42
13 lines
1188 bytes
Quiero que mientras haya parametros, haga una determinada cosa.

#!/bin/bash
# La variable i es el primer parametros
i=1;
#mientras las variables $1 $2 $3 tengan valores, que se ejecute el bucle.
while $i
do
   echo -e "Posicion $i\n"
   let i++
done

De antemano Gracias!
Re: BASH SCRIPT
#1216
Author: Reinoso G.
Date: Sat, 25 Feb 2006 11:33
12 lines
1511 bytes
 El otro d�a, Olaf El Blanco nos estuvo contando:
> Quiero que mientras haya parametros, haga una determinada cosa.

�Que cuando le pases par�metros haga una cosa y cuando no se los pases 
haga otra? �O que cuando un par�metro sea distinto de cero haga una cosa y 
si no otra?

Bueno no me ha quedado claro qu� quieres hacer, pero por si te vale: una 
variable que no ha sido inicializada es igual a "" as� que con eso puedes 
comparar.

Saludos.
Re: BASH SCRIPT
#1217
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Sat, 25 Feb 2006 11:40
14 lines
1462 bytes
Hola Olaf El Blanco <einherjar@yahoo.es>
el Sat, 25 Feb 2006 11:42:40 +0100 escribiste:

> Quiero que mientras haya parametros, haga una determinada cosa.

while [ $# -gt 0 ]; do
	echo "$1"
	echo "$@"
	shift
done

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: BASH SCRIPT
#1218
Author: AnimAlf
Date: Sat, 25 Feb 2006 13:15
30 lines
1839 bytes
El ds 25 de 02 del 2006 a les 11:42 +0100, en/na Olaf El Blanco va
escriure: 
> Quiero que mientras haya parametros, haga una determinada cosa.
> 
> #!/bin/bash
> # La variable i es el primer parametros
> i=1;
> #mientras las variables $1 $2 $3 tengan valores, que se ejecute el bucle.
> while $i
> do
>    echo -e "Posicion $i\n"
>    let i++
> done

if [ $# -eq 0 ]; then echo "Necesito más!!"; exit -1; fi;
for i in $(seq 1 $#)
do
   echo -e "en la posicion $i: $1"; shift;
done

-- 
AnimAlf AnimAlf@engendro.sytes.net 
http://www.fut.es/~acl/AnimAlf 
Personal Experimental WebServer: http://www.engendro.sytes.net 
LiNUX ReGiSteRED UseR #91326 
PublicPGPkeyID 0xB3B41215 
Is the truth out there? 

Coalición europea contra el correo comercial no solicitado: 
http://www.euro.cauce.org/es
Re: BASH SCRIPT y GREP
#1219
Author: Olaf El Blanco
Date: Sat, 25 Feb 2006 13:49
24 lines
1691 bytes
Voy hacer mas claro...

Queria hacer:

Mientras haya mas parametros...
   imprime el parametro Y la posici�n
   reduce en uno la cantidad de parametros.

Y mi problema viene cuando quiero imprimir $x (el nombre del parametro de la
x posici�n) Aqu� hice algo parecido a "${i}" donde i es una variable igual
a $#. Pero el resultado es desastroso.

De antemano gracias y disculpen por lo basico.


Al querer aprender a programar en BASH me dije, �porque no buscar todos los
archivos bash de mi sistema y aprender de los mejores?

Entonces:

Hice algo parecido a: grep '^#!.*/bin/bash' 2>/dev/null 1>listado_ejemplo

No obtengo los resultados que quiero. Yo quiero un listado con las
ubicaciones de cada archivo script bash.
Re: BASH SCRIPT
#1222
Author: Pascal Bourguignon
Date: Sat, 25 Feb 2006 17:05
35 lines
2029 bytes
Olaf El Blanco <einherjar@yahoo.es> writes:

> Quiero que mientras haya parametros, haga una determinada cosa.
>
> #!/bin/bash
> # La variable i es el primer parametros
> i=1;
> #mientras las variables $1 $2 $3 tengan valores, que se ejecute el bucle.
> while $i
> do
>    echo -e "Posicion $i\n"
>    let i++
> done
>
> De antemano Gracias!

Ademas de los otros ejemplos de como iterar sobre todos los parametros
se puede usar:

for arg ; do
  echo otro parametro
done

No necesitas un $i

Ahora, si lo que quieres es indexar los parametros, puedes hacer una indireci�n:

i=2
echo  ${i}� parametro: ${!i} 


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"This statement is false."            In Lisp: (defun Q () (eq nil (Q)))
Re: BASH SCRIPT
#1224
Author: Olaf El Blanco
Date: Sat, 25 Feb 2006 21:12
12 lines
1347 bytes
AnimAlf <AnimAlf@engendro.sytes.net> el Sábado, 25 de Febrero de 2006 14:15
wrote:

> if [ $# -eq 0 ]; then echo "Necesito más!!"; exit -1; fi;
> for i in $(seq 1 $#)
> do
> echo -e "en la posicion $i: $1"; shift;
> done


Muy bueno, pero me puedes explicar lo que hace el $sec 1 $#?
Gracias
Re: BASH SCRIPT
#1226
Author: AnimAlf
Date: Sat, 25 Feb 2006 23:03
36 lines
2093 bytes
El ds 25 de 02 del 2006 a les 22:12 +0100, en/na Olaf El Blanco va
escriure:
> AnimAlf <AnimAlf@engendro.sytes.net> el Sábado, 25 de Febrero de 2006 14:15
> wrote:
> 
> > if [ $# -eq 0 ]; then echo "Necesito más!!"; exit -1; fi;
> > for i in $(seq 1 $#)
> > do
> > echo -e "en la posicion $i: $1"; shift;
> > done

> Muy bueno, pero me puedes explicar lo que hace el $sec 1 $#?
> Gracias

seq es una orden se shell al estar entre parentesis se ejecuta y
devuelve una sequencia entre 1 y $# es para ejecutarlo como el for
tradicional

man seq

creo que quieres conseguir es:

find . -type f -exec grep -l "[^#]bash$" {} \;

Saludos
-- 
AnimAlf AnimAlf@engendro.sytes.net 
http://www.fut.es/~acl/AnimAlf 
Personal Experimental WebServer: http://www.engendro.sytes.net 
LiNUX ReGiSteRED UseR #91326 
PublicPGPkeyID 0xB3B41215 
Is the truth out there? 

Coalición europea contra el correo comercial no solicitado: 
http://www.euro.cauce.org/es
Re: BASH SCRIPT y GREP
#1237
Author: Alberto Cabello Sanchez
Date: Thu, 02 Mar 2006 12:58
16 lines
1355 bytes
Olaf El Blanco wrote:

> 
> Al querer aprender a programar en BASH me dije, �porque no buscar todos los
> archivos bash de mi sistema y aprender de los mejores?
> 
> Entonces:
> 
> Hice algo parecido a: grep '^#!.*/bin/bash' 2>/dev/null 1>listado_ejemplo
> 

grep -l muestra (s�lo) los ficheros coincidentes. As�,

grep -rl '^#!.*/bin/bash' /usr/bin/  2>/dev/null 1>listado_ejemplo

hace lo que quieres en /usr/bin
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads