Shell Script para verificar la string en busca de una condición particular

Aquí, vamos a escribir un script de shell que repetirá (imprimirá) un mensaje adecuado si la string aceptada no cumple una condición particular. Supongamos que hemos dado ciertas condiciones, entonces nuestra tarea es imprimir el mensaje si la string aceptada no coincide con la condición.

Ejemplo 1: 

Si la longitud de la string aceptada es inferior a 10, mostraremos un mensaje que dice » La string es demasiado corta «.

Input:  "abcdef"
Output:  String is too short
Length is 6, which is smaller than 10.

Acercarse:

  • Tomaremos una string del usuario.
  • Tenemos que encontrar la longitud de la cuerda para que podamos decidir si es más pequeña o más grande que 10.
  • Encontraremos la longitud usando el siguiente comando:
len=`echo -n $str | wc -c`

A continuación se muestra la implementación:

# Shell script to print message 
# when condition doesn't matched

# taking user input
echo "Enter the String : "
read string

# Finding the length of string 
# -n flag to avoid new line
# wc -c count the chars in a file
len=`echo -n $string | wc -c`

# Checking if length is smaller
# than 10 or not
if [ $len -lt 10 ]
    then
        # if length is smaller 
        # print this message
        echo "String is too short."
fi

Producción:

Ejemplo 2: Aceptaremos dos strings de entrada y encontraremos si ambas son iguales o no.

String1 -> a = “abc”

String2 -> b = “abc”

Aquí a y b son iguales.

A continuación se muestra la implementación:

# Shell script to check whether two 
# input strings is equal

# take user input
echo "Enter string a : "
read a

echo "Enter string b : "
read b

# check equality of input
if [ "$a" = "$b" ]; then

    # if equal print equal
    echo "Strings are equal."
else
      # if not equal
    echo "Strings are not equal."
fi

Producción:

Geeks
Geeks
Strings are equal.

Ejemplo 3:

Estamos trabajando con strings, por lo que ahora tomaremos dos strings como entrada y comprobaremos cuál de las dos es mayor con respecto al orden lexicográfico (alfabético).

string1 > string2 : El operador mayor que devuelve verdadero si el operando izquierdo es mayor que el derecho ordenado por orden lexicográfico (alfabético).

string1 < string2: el operador menor que devuelve verdadero si el operando derecho es mayor que el derecho ordenado por orden lexicográfico (alfabético).

# Shell script to check which 
# string is lexicographically
# larger

# user input
echo "Enter String a : "
read a

echo "Enter String b : "
read b

# if a is greater than b
if [[ "$a" > "$b" ]]; then
    echo "${a} is lexicographically greater then ${b}."

# if b is greater than a
elif [[ "$a" < "$b" ]]; then
    echo "${b} is lexicographically greater than ${a}."

# if both are equal
else
    echo "Strings are equal"
fi

Producción:

abc
def
def is lexicographically greater than abc.

Publicación traducida automáticamente

Artículo escrito por hritikrommie y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *