Lun
29
Sep

Shell Script: No sé qué hacer


Elrohir, dejó el siguiente shell script en el foro de programación. Para esos días en que no sabemos qué hacer. Se ingresan 3 opciones, y el script elige cuál hacer, inspirado en la película Chaos Theory:

#!/bin/bash
sugerido=$[$RANDOM % 3]
echo "Opcion 1?";read op1;
echo "Opcion 2?";read op2;
echo "Opcion 3?";read op3;
 
clear;
 
if [ $sugerido -eq 0 ];
then
   echo "Hacer ";
   echo $op1;
fi
if [ $sugerido -eq 1 ];
then
        echo "Hacer ";
   echo $op2;
fi
if [ $sugerido -eq 2 ];
then
        echo "Hacer ";
   echo $op3;
fi

Si te gustó éste post, podés apoyar a PicandoCódigo a través de PayPal!



12 Comentarios para “Shell Script: No sé qué hacer”

  1. Jose a las 9:24 pm 29 Septiembre. 2008
    Firefox 3.0.3Ubuntu
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3

    Nunca se me habria ocurrido, es justo lo que necesitaba .xD. GRACIAS.

    Saludos

  2. sharysce a las 1:21 pm 30 Septiembre. 2008
    Firefox 3.0.2Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.2) Gecko/2008091620 Firefox/3.0.2

    Ese si que es un script muy sencillo….dammm!!!…si hubiera pensado en hacerlo así no me hubiera metido en la broncota en la que me metí haciendo el mio :(

  3. hugo_dc a las 1:28 pm 30 Septiembre. 2008
    Firefox 3.0.3Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

    Como en mi trabajo no tengo linux:

    import random
    import sys
     
    try:
    	opcion1 = sys.argv[1]
    	opcion2 = sys.argv[2]
    	opcion3 = sys.argv[3]
    except:
    	print "Uso:\n\n"
    	print "python " + sys.argv[0] + "   \n\n"
    	exit()
     
    res = random.randint(1,3)
     
    if res==1:
    	print "Hacer: ", sys.argv[1]
    if res==2:
    	print "Hacer: ", sys.argv[2]
    if res==3:
    	print "Hacer: ", sys.argv[3]
  4. hugo_dc a las 1:31 pm 30 Septiembre. 2008
    Firefox 3.0.3Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

    no tengo idea que están haciendo las variables opcion1, opcion2, opcion3…

    jajaja xD

    cosas de scripting rápido…

  5. Francisco Castro a las 12:47 am 1 Octubre. 2008
    Konqueror 3.5Debian GNU/Linux
    Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.9 (like Gecko) (Debian)

    Te recomendaría que aprendas a usar la estructura de control case, eso te simplificaría la vida significativamente:

    case $sugerido in
      0) echo "Hacer $op1"
      1) echo "Hacer $op2"
      2) echo "Hacer $op3"
    esac
  6. Francisco Castro a las 12:48 am 1 Octubre. 2008
    Konqueror 3.5Debian GNU/Linux
    Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.9 (like Gecko) (Debian)

    sorry, me faltaron los ;; en cada uno de los casos

  7. Elrohir a las 1:29 am 1 Octubre. 2008
    Opera 9.52GNU/Linux
    Opera/9.52 (X11; Linux i686; U; en)

    ahahaha… xD
    no pense el case…

  8. soullost a las 9:33 pm 2 Octubre. 2008
    Firefox 3.0.3Gentoo
    Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.0.3) Gecko/2008092714 Gentoo Firefox/3.0.3

    La versión de C++:

    http://soullost.org/programacion/%c2%bfque-hacer-en-c/

  9. maeghith a las 10:22 am 4 Octubre. 2008
    Camino 1.6.4Mac OS
    Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; es; rv:1.8.1.17) Gecko/20080915 Camino/1.6.4 (MultiLang) (like Firefox/2.0.0.17)

    Un poco más sofisticado (pero no mucho más largo):

    cuantas=${1:-3}
     
    for ((i=1; $i<=$cuantas; i=$i+1)); do
            read -p "opcion $i? " op[$i];
    done
     
    echo -n "Haz: ";
    echo ${op[ $[$RANDOM % $cuantas]+1 ]};

    pregunta las veces que quieras pasandole un parámetro (”./script.sh 2″ pregunta 2 veces), sin parámetros preguntará 3 veces

  10. maeghith a las 10:28 am 4 Octubre. 2008
    Camino 1.6.4Mac OS
    Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; es; rv:1.8.1.17) Gecko/20080915 Camino/1.6.4 (MultiLang) (like Firefox/2.0.0.17)

    hmm… vaya, wp se me cambió el < por &lt; en el bucle for, ¡wp malo, los pre no se tocan!

  11. Victor Herrera a las 2:30 am 24 Abril. 2009
    Firefox 3.0.4GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008111723 Firefox/3.0.4 Flock/2.0.2

    No he probado el codigo; pero a grandes rasgos tenia que quedar algo asi en ruby:

    Perdon q no me quedara con tres opciones, pero la mala costumbre de hacer lo mas general posible el script; espero funcione, jeje

     
    x=rand(ARGV.length)
    puts "Hacer : #{ARGV[x]}"

Trackbacks

  1. Un poco Geek » Blog Archive » ¿Qué hacer? en C++
    WordPress 2.6
    Incutio XML-RPC -- WordPress/2.6

Dejar un comentario

Al agregar un comentario en esta página, usted acepta la siguiente licencia para su publicación:
Creative Commons License Creative Commons Attribution-Share Alike 3.0 Unported License.

Si quieres mostrar código, enciérralo entre los tags pre de esta forma:
<pre lang="L"> y </pre>, donde L es un lenguaje compatible GeSHI. Más info.

XHTML: Las siguientes tags están permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">





Búsqueda personalizada