Creo que esto ya parece algun paquete de Debian, todo por partes, un ejemplo seria php5, php5-mysql, php5-gd, pero que va, asi es algo mas organizado y pues ahora creamos ejemplo1.bash (Con el editor que mas nos guste)

#!bin/bash
##########################
#Un script
# David Barreda 19/Mayo/07
##########################
clear
Who am I
echo “Mostrando el contenido del directorio actual”
sleep 3
ls
sleep 3
clear

le doy sus permisos de ejecucion

pato@A17:~$ chmod 755 ejemplo1.bash

y lo ejecuto

pato@A17:~$ ./ejemplo1.bash
pato pts/0 2007-05-19 13:36 (:0.0)
Mostrando el contenido del directorio actual
ark cosa Desktop Examples pato.tar.bz2 practicas
cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt

Vamos a ver las variables de ambiente con env (Borre algunas que estaban muy largas)

pato@A17:~$ env
SSH_AGENT_PID=5368
SHELL=/bin/bash
DESKTOP_STARTUP_ID=
TERM=xterm
GTK_RC_FILES=/etc/gtk/gtkrc:/home/pato/.gtkrc-1.2-gnome2
WINDOWID=44072840
USER=pato
SSH_AUTH_SOCK=/tmp/ssh-ywdtkv5330/agent.5330
GNOME_KEYRING_SOCKET=/tmp/keyring-F3dkyR/socket
SESSION_MANAGER=local/A17:/tmp/.ICE-unix/5330
USERNAME=pato
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
DESKTOP_SESSION=default
GDM_XSERVER_LOCATION=local
PWD=/home/pato
LANG=es_MX.UTF-8
GDMSESSION=default
HISTCONTROL=ignoreboth
SHLVL=1
HOME=/home/pato
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=pato
LESSOPEN=| /usr/bin/lesspipe %s
DISPLAY=148.226.81.52:0
LESSCLOSE=/usr/bin/lesspipe %s %s
COLORTERM=gnome-terminal
XAUTHORITY=/home/pato/.Xauthority
_=/usr/bin/env

Ahora vamos a crear una y luego vemos su contenido

pato@A17:~$ export PATH=.:$PATH
pato@A17:~$ echo $PATH
.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Haciendo este script algo mas largo, complejo, y mas bonito =) (esta vez lo descargamos por scp de la leccion de acceso
remoto para no tenerlo que re-escribir

pato@A17:~$ scp pato@148.226.81.23:/home/gerardo/public_html/ls .
pato@148.226.81.23’s password:
ls 100% 331 0.3KB/s 00:00
pato@A17:~$ cat ls
#!/bin/bash
##########################
#Mi primer script
# Gerardo, 19/mayo/07
##########################
clear
echo “Mostrando el contenido del directorio actual”
sleep 3
echo “Borrando tu disco duro”
sleep 1
echo “.”
sleep 2
echo “..”

sleep 3
echo “…”
sleep 3
clear
echo “Just kidding, por eso no debes tener el . en tu path”

Y he alli, la razon de porque no se debe poner el . en el path porque asi te pueden JODER! Ejecutando el script este (que bien podria tener un rm -rf * y borrar todo tu contenido) en lugar del comando ls ya que con el comando que hicimos hace rato, era para que no tubieras que poner ./ls y pusieras solo el nombre del binario, en este caso ls que tiene una broma que en algun momento podria ser maliciosa

Mejor cuando queramos nuestro path hacemos algo asi:

pato@A17:~$ mkdir bin
pato@A17:~$ export PATH=$PATH:/home/pato/bin

Y en este momento, nos estan pasando unas copias para aprender como usar el shell mejor, las leere mas tarde y publicare las payasadas que haga por aqui.

Ahora vamos a hacer un pequeño script que limpie la pantalla, nos de la hora, se duerma 10 segundos y vuelva a limpiar la pantalla:

pato@A17:~$ nano ejemplo2.bash
pato@A17:~$ chmod 755 ejemplo2.bash
pato@A17:~$ ejemplo2.bash
pato@A17:~$ mv ejemplo2.bash bin

Aqui el script que hize: (el contenido del ejemplo2.bash)

#!/bin/bash
##########################
#Un script
# David Barreda 19/Mayo/07
##########################
clear
date
sleep 10
clear

Claro, solo escribo ejemplo.bash porque ya puse mi path hace rato, pero como es un binario en cualquier otro lugar seria

./ejemplo2.bash

Ahora otros 2 scripts, uno que borre (sintaxis: elimina ) y otro que recupere (recupera ) lo que borre con el otro.

pato@A17:~/bin$ cat borrar
echo $1
mv $1 ~/.Trash
pato@A17:~/bin$ cat recupera
echo $1
mv ~/.Trash/$1 ~/

y listo! Aqui estan los resultados:

pato@A17:~$ touch x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas x
pato@A17:~$ borrar x
x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas
pato@A17:~$ recupera x
x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas x

Y pues con algo simple hicimos algo UTIL.

Ahora, algo un script, que nos cree scripts…

echo “#!/bin/bash”>$1
echo “################”>>$1
echo “#Nombre del script $1>>$1
echo “#Creador `whoami`>>$1
echo “#Fecha: `date`”>>$1
echo “################”>>$1
echo “Creando archivo ´$1´?
echo “Cargando…. ”
sleep 3
nano $1
chmod 755 $1
echo “Cambiando Permisos”

Asi creo un script con ese script con la extension .bash, y de tarea le tengo que agregar lo siguiente:
- Si no especificas el nombre del script, te debe preguntar como se va a llamar este.
- Si ese archivo ya existe, debes de cargar el que esta alli.

Leave a Reply

You must be logged in to post a comment. Login »