La mayoría de los lenguajes de programación tienen lo que se denomina instrucción vacía. Esta instrucción en realidad no realiza ninguna función práctica, pero permite rellenar un hueco allí donde se necesita.
Veamos un ejemplo en Python:
import sys
try:
f = open('myfile','r')
except:
pass
En este ejemplo, si el fichero myfile no existe saltará una excepción que será capturada por el bloque try. Como no se requiere ejecutar ninguna acción si salta la excepción y la sección except hay que colocarla, se pone en ella la instrucción vacía pass de Python.
Veamos cuál es la instrucción vacía en bash y qué usos se le puede dar.
Instrucción vacía en bash
En bash se dispone de la instruccion “:”, que no ejecuta ninguna acción como tal. Aunque a priori no resulta de mucha utilidad, se le pueden dar algunos usos interesantes.
Uso como instrucción requerida dentro de un bloque
Todo bloque necesita al menos de una instrucción en su interior. Por ejemplo:
if [ $VAR -eq 1 ]; then
echo "Vale 1"
else
echo "Distinto de 1"
fi
Aquí, tanto la parte del if como la del else tienen una instrucción. Aunque no tenga mucho sentido, se podría rellenar el hueco del if si solo se desea actuar en caso de no valer 1:
if [ $VAR -eq 1 ]; then
:
else
echo "Distinto de 1"
fi
Uso como comentario
El símbolo “:” se puede usar como comentario dado que lo que le sucede no se tiene en consideración.
VAR=4
if [ $VAR -eq 1 ]; then
: Aquí nunca entrará
echo "Vale 1"
else
echo "Distinto de 1"; : Por aquí siempre pasará
fi
Indicar que si se quiere usar a modo de comentario, como se trata de un comando habrá que separarlo por “;” del comando anterior, como ocurre en el bloque else.
Uso para activar un modo depuración
En ocasiones puede ser útil añadir comentarios a un script para comprobar su funcionamiento durante los test de desarrollo. No obstante, una vez se desea dejar una versión final del código hay que revisar linea por linea para eliminar estos comentarios. Y puede ocurrir que en un futuro se puedan necesitar.
Se puede usar la instrucción vacía para hacer esta función. Veamos un ejemplo:
#!/usr/bin/env bash
if [[ ! -z "$1" && "$1" == "--debug" ]]; then
DEBUG="echo "
else
DEBUG=":"
fi
if [ : ]; then
$DEBUG "Entro al IF"
fi
Si este script se ejecuta con el parámetro --debug, los comentarios que se hayan introducido en el código se mostrarán por pantalla pues se hará un echo de ellos. Sin embargo, en cualquier otro caso la instrucción vacía hará la función de comentario para evitar su salida por pantalla.
Uso equivalente a true
Como se ha visto en el ejemplo anterior, el comando vacío hace las veces de true cuando se usa en una expresión de evaluación:
#!/usr/bin/env bash
while [ : ]; do
date
done
No hay comentarios:
Publicar un comentario