Cursos y talleres en español de Internet de las Cosas (IoT)
            
  Acceso a cursos  

Estructuras de validación

¿En qué podemos ayudarte?

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

Deja una respuesta