Estructuras de validación

Estas aquí:
<< Regresar

Introducción a los scripts

La mayoría de los scripts de preferencia deben ser escritos con los editores emacs, gedit, entre otros. Al igual asignarles permisos de ejecución para la escritura y ejecución, con un:

chmod 755 nombre_script.sh

Para la ejecución de un script, sólo bastará con lanzarlo de la siguiente manera desde la ruta relativa en la que se encuentra.

./nombre_script.sh
/home/usuario1/scripts/nombre_del_script.sh

el contenido del script de prueba será una simple impresión en pantalla con un Hola mundo

#! /bin/bash
echo "Hola mundo"

lo guardaremos como hola_mundo y lo ejecutaremos como previamente se vio.

Video: Introducción a Bash

En este video veremos una breve introducción a Bash, permisos de ejecución, entre otros.

Validación. IF

if es la instrucción que nos permite condicionar que un script siga un proceso o no, por defecto todas las validaciones verdaderas en sistemas Linux regresan un 0, en caso contrario mandarán algún número positivo del 1 al 255.

La estructura básica para la condición if es:

if commands; then
commands
[elif commands; then
commands...]
[else
commands]
fi

en donde commands son las instrucciones que se llevarán acabo.

Toda validación con if debe termina con fi, más puede incluir varias validaciones de forma interna por medio de elif y en el caso de que ninguna condición se cumpla con else se dirigirá el flujo del programa hacia allá.

Por ejemplo:

Esta condicional nos permitirá saber si el usuario cuenta con un archivo .bash_profile

if [ -f .bash_profile ]; then
echo "Si existe .bash_profile."
else
echo "No cuenta con .bash_profile!"
fi

la condicional entre corchetes (es un operador que se llama test y permite saber si una validación es verdadera o falsa) permite conocer por medio de la bandera -f si el archivo .bash_profile es un archivo regular, en caso de ser verdadero imprimirá en pantalla «Si existe .bash_profile.», en caso contrario «No cuenta con .bash_profile!».

Se pueden hacer diversas condiciones algunas de ellas son:

Expresión Descripción
-d file «true» si file es un directorio.
-e file «true» si file existe.
-f file «true» file es un archivo regular.
-L file «true» file es una liga suave.
-r file «true» si su usuario cuenta con permisos de lectura a file.
-w fil «true» si su usuario cuenta con permisos de escritura a file.
-x file «true» si su usuario cuenta con permisos de ejecución a file.
file1 -nt file2 «true» si file1 es más nuevo que file2 (basado en la fecha de modificación)
file1 -ot file2 «true» si file1 es más viejo que file2.
-z string «true» si string es una cadena vacía.
-n string «true» si string no es una cadena vacía.
string1 = string2 «true» si string1 es igual a string2.
string1 != string2 «true» si string1 no es igual a string2.7

Video: Ejemplo del uso de If-elif-else

El programa de ejemplo puede ser copiado desde aquí:

#! /bin/bash 
# Copyright (c) 2015, J. Daniel Cordero

# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.

# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

# echo "He terminado!"

if [[ -f file.txt ]]; then
    echo "Si existe file.txt"
else
    echo "No existe file.txt"
fi

ls -lha . > file.txt

Anterior Enlaces/Ligas
Siguiente Uso de Case

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Tabla de contenidos
Twitter
Visit Us
Follow Me
LinkedIn
blank
Share
YOUTUBE
YOUTUBE