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