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!



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

  1. Jose



    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



    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



    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



    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



    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



    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



    Opera/9.52 (X11; Linux i686; U; en)

    ahahaha… xD
    no pense el case…

  8. soullost



    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



    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



    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!

Trackbacks

  1. Un poco Geek » Blog Archive » ¿Qué hacer? en C++

Dejar un comentario

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="">


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.