• guiOn

    From Felipe T. Dorado@2:345/702 to Todos on Thu Aug 17 14:03:52 2006
    Hola Todos :)


    Me dió por mirar un tutorial he hice esto:


    ----------------Ex 1-------------------
    #!/bin/bash

    # Ejercicios preliminares Capítulo 2.2

    {
    echo
    echo "La fecha que tengo es `date -u`."
    echo

    echo
    echo "Los usuarios que están en el sistema ahora son: "
    echo
    echo "`who`"
    echo

    echo
    echo "El sistema lleva funcionando: "
    echo "`uptime`"
    echo

    } > infosys

    cat infosys

    exit 0
    -----------------fin Ex 1----------------

    ¿Alguien tiene algo mas completo y usable que este simple concatenamiento de las tres órdenes?

    Quien no sepa de qué va esto puede probar a ponerlo en un fichero con 777 y ejecutarlo.

    Felipe :)

    --- GoldED+/LNX 1.1.5
    * Origin: El Zoco BBS, COrdoba, Espa-na, UE, Tierra, Sol, VL. (2:3 (2:345/702)
  • From Sergi Reyner@2:348/105.38 to Felipe T. Dorado on Thu Aug 17 20:54:18 2006
    ¡Hola Felipe!

    El 17 Aug 06 a las 14:03, Felipe T. Dorado escribió a Todos:

    ¿Alguien tiene algo mas completo y usable que este simple
    concatenamiento de las tres órdenes?

    Hice esto hace algo más de un año para Phantasien (MUD donde pululo como imm), es un script(guión) que sirve para poner a 0 las cuentas bancarias de todos los jugadores.

    La estructura de directorios es la siguiente:

    ~/Phantasien/var/player
    |
    +-- a/
    | |
    | +-- Amon (esto es una ficha de un jugador)
    | +-- Andino
    | +-- Azrael
    |
    +-- b/
    | |
    | +-- Belgarion
    | +-- Blaster
    | +-- Borrico
    |
    ...

    El script es en realidad dos: un guión para ejecutar desde la shell y un guión de sed, para ejecutar en cada ficha. Recuerdo que tardé como una media hora en hacer el fichero .sed :D
    Y seguro que si tuviera que repetirlo ahora tardaría lo mismo xD


    === Cortar [banco_a_0.sh] ===
    # !/bin/sh
    # banco_a_0.sh
    #
    # Pone a 0 las cuentas bancarias de *TODOS* los jugadores
    #
    # Instrucciones: banco_a_0.sh y banco_a_0.sed deben estar
    # en var/player/
    # Ejecutar desde var/player también

    DIRS="a b c d e f g h i j k l m n o p q r s t u v w x y z movidos kastigados"

    mkdir backupsbanco
    for d in $DIRS
    do
    mkdir backupsbanco/$d
    for f in `echo $d/*`
    do
    echo "$f: "
    cp $f backupsbanco/$f
    sed -f banco_a_0.sed backupsbanco/$f > $f
    done
    done
    === Cortar ===


    Y aquí está el script de sed:


    === Cortar [banco_a_0.sed] ===
    s/Banco .*/Banco 0/
    === Cortar ===

    Esto se lee así: buscar "Banco loquesea" y reemplazarlo con "Banco 0".
    No es gran cosa, pero supongo que es más o menos lo que pedías :)

    Saludos,
    Sergi Reyner Ariño (2:348/105.38)

    --- GoldED+/LNX 1.1.5
    * Origin: The TARDIS - FiCBBS (2:348/105.38)