Scripts#
[1]:
%%bash
# Los scripts son archivos que contienen secuencias de
# comandos y que pueden ser ejecutados directamente en
# la línea de comandos (Bash en este caso). En el
# siguiente ejemplo, se va a crear un script llamado
# `demo.sh` el cual imprime `hola mundo` en la pantalla.
#
echo 'echo hola mundo' > demo.sh
[2]:
%%bash
#
# Se imprime en pantalla el contenido de demo.sh
#
cat demo.sh
echo hola mundo
[3]:
%%bash
#
# El archivo fue creado en el directorio de trabajo
#
ls *.sh
demo.sh
[4]:
%%bash
#
# Para ejecutarlo se usa el comando `bash`.
#
bash ./demo.sh
hola mundo
[5]:
%%bash
#
# Es posible hacer que el archivo `demo.sh` sea ejecutable por
# el sistema operativo. En primer lugar, es necesario agregar
# la linea:
#
#
# #! /usr/bin/env bash
#
# la cual indica que el archivo actual puede ser ejecutado
# usando el comando `bash`; obligatoriamente esta tiene que ser
# la primera línea del archivo. La cadena de caracteres `#!`
# se conoce como *shebang*, *hashbang* o *sharpbang* en la
# jerga de Unix; después del shebang va el `path` donde se
# encuentra el programa que puede ejecutar el archivo actual; y
# finalmente, aparece el nombre del programa como tal.
#
cat > demo <<EOF
#! /usr/bin/env bash
echo hola mundo
EOF
[6]:
%%bash
#
# Se imprime el contenido de `demo.sh`.
#
cat demo
#! /usr/bin/env bash
echo hola mundo
[7]:
%%bash
#
# En segundo lugar, se modifican las propiedades del archivo
# `demo.sh` con el comando `chmod` para hacerlo ejecutable
# (opción `+x`).
#
chmod +x demo
[8]:
%%bash
#
# Para ejecutar `demo.sh` es necesario precederlo de `./`
# para indicar que el archivo se encuentra en el directorio
# actual de trabajo.
#
./demo
hola mundo
[9]:
%%bash
#
# La ventaja de los scripts es que pueden ser usados pasándoles
# parámetros.
#
# En este caso se modifica el programa anterior para que salude
# al usuario, cuyo nombre se pasa como un parámetro al script.
# `$1` corresponde al primer argumento de la llamada.
#
cat > demo.sh <<EOF
#! /usr/bin/env bash
echo hola \$1 \$2
EOF
[10]:
%%bash
#
# Visualización del contenido de `demo.sh`.
#
cat demo.sh
#! /usr/bin/env bash
echo hola $1 $2
[11]:
%%bash
#
# Se cambian los permisos del archivo `demo.sh` para hacerlo
# ejecutable.
#
chmod +x demo.sh
[12]:
%%bash
#
# Se ejecuta el script `demo.sh` pasándole dos parámetros.
#
./demo.sh juan david
hola juan david
[13]:
%%bash
#
# Como se observó en el ejemplo anterior:
# * `$1` indica el primer argumento.
# * `$2` indica el segundo argumento, y así sucesivamente.
# * `$0` es el nombre del script.
# * `$*` y `$@` representan la cadena de texto conformada
# por todos los argumentos.
# * `$#` indica el número de argumentos pasados al script.
#
echo "echo \$@
echo \$*
echo \$0
echo \$1
echo \$#" > demo.sh
cat demo.sh
echo $@
echo $*
echo $0
echo $1
echo $#
[14]:
%%bash
#
# El script `demo.sh` es ejecutado pasándole cuatro argumentos.
#
bash demo.sh a b c d
a b c d
a b c d
demo.sh
a
4