🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
3 messages
3 total messages Started by cpcbegin Thu, 12 Jun 2008 20:01
bash para mostrar 1,2,3... como a,b,c
#439
Author: cpcbegin
Date: Thu, 12 Jun 2008 20:01
9 lines
1445 bytes
¿Cómo podrían hacer un bash que introduciéndole un numero ordinal me
devuelta la letra ordinal?

Es para hacer un comando que pasandole dos parametros por ejemplo 2 3
me devuelva
hdb3

Gracias y un saludo.
Re: bash para mostrar 1,2,3... como a,b,c
#440
Author: sio2
Date: Sat, 14 Jun 2008 10:06
18 lines
1622 bytes
El jueves, 12 de junio de 2008, a las 20:01 GMT, cpcbegin escribi�:

> �C�mo podr�an hacer un bash que introduci�ndole un numero ordinal me
> devuelta la letra ordinal?

Hay muchas formas. A m� se me ocurre usando exclusivamente bash esta:

letras="abcdefg"
l=3
echo ${letras:l:1}  #Devuelve "d"

-- 
Todos buscan quien ampare, yo quien enmiende; que m�s
quiero ir entendido que defendido.
                  --- Lope de Vega ---
   Si     Di�xido de Silicio |      Debian GNU/Linux lenny/sid
  /  \         (SiO2)        |    Jos� Miguel S�nchez Al�s
 O    O   Mineral de Cuarzo  |  sio2.ARROB@online.fr | URL #257033
Re: bash para mostrar 1,2,3... como a,b,c
#441
Author: iarenaza
Date: Sat, 14 Jun 2008 10:23
56 lines
3275 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>>>>> "cpcbegin" == cpcbegin  <cpcbegin@gmail.com> writes:

    cpcbegin> �C�mo podr�an hacer un bash que introduci�ndole un
    cpcbegin> numero ordinal me devuelta la letra ordinal?

    cpcbegin> Es para hacer un comando que pasandole dos parametros
    cpcbegin> por ejemplo 2 3 me devuelva hdb3

La orden tr (ente otras) te puede servir. Se puede hacer m�s corto
usando awk o perl, pero es m�s 'pesado' para ejecutarlo:

<---> <---> <---> <---> <---> <---> <---> <---> <---> <---> <---> <---> 
#!/bin/bash
ordinal_disco=2
ordinal_particion=3

case $ordinal_disco in
        [1-9])  letra_disco=`echo $ordinal_disco | tr '[1-9]' '[a-i]'`
                ;;
        1[0-9]) ordinal_disco=$(($ordinal_disco - 10))
                letra_disco=`echo $ordinal_disco | tr '[0-9]' '[j-s]'`
                ;;
        2[0-6]) ordinal_disco=$(($ordinal_disco - 20))
                letra_disco=`echo $ordinal_disco | tr '[0-6]' '[t-z]'`
                ;;
        *)      echo "Valor de ordinal de disco invalido ($ordinal_disco)"
                exit
                ;;
esac
case $ordinal_particion in
        [1-9])  ;;
        [1-9][0-9]*) ;;
        *)      echo "Valor de ordinal de particion invalido ($ordinal_particion)"
                exit
                ;;
esac
particion="hd${letra_disco}${ordinal_particion}"
echo $particion
<---> <---> <---> <---> <---> <---> <---> <---> <---> <---> <---> <---> 

Saludos. I�aki.

- -- 
  Get PGP/GPG Keys at  http://www.escomposlinux.org/iarenaza/pgpkey.php
  I use free software / Yo uso software libre
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8+ <http://mailcrypt.sourceforge.net/>

iD8DBQFIU5w7ZXLnGT1HLgcRAnnIAJwPDqCepxIcGHsufB2LZ9xLCRCUnQCeJhUR
VlE8y8/Vg+FpNebtR6erL58=
=9D6z
-----END PGP SIGNATURE-----
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