Calculación de expresiones matemáticas en el lenguaje de scripts de shell - Parte V

Calculación de expresiones matemáticas en el lenguaje de scripts de shell - Parte V

Ustedes se sentirían cómodos, comprensivos Scripts de shell y escribirlos con fluidez, según su necesidad. Esta es la última publicación de esta serie tutorial, donde llevaremos a cabo un poco complejo Operaciones matemáticas Usar lenguaje de secuencias de comandos. Los últimos cuatro artículos de Scripting de concha serie que son cronológicamente.

Aprender parte de scripting de shell - V
  1. Comprender los consejos básicos de lenguaje de secuencias de comandos de Linux - Parte I
  2. 5 scripts de shell para Linux Newbies para aprender la programación de shell - Parte II
  3. Navegando por el mundo de Linux Bash Scripting - Parte III
  4. Aspecto matemático de la programación de Shell Linux - Parte IV

Comencemos con la serie Fibonacci

Un patrón de números donde cada número es la suma de dos números anteriores. La serie es 0, 1, 1, 2, 3, 5, 8... por definición, los dos primeros números en el Fibonccai La secuencia es 0 y 1.

Script 1: Fibonacci.mierda
#!/bin/bash echo "¿Cuántos números quieres de la serie Fibonacci ?"Leer Total x = 0 y = 1 i = 2 echo" Serie Fibonacci hasta $ total Términos :: "echo" $ x "echo" $ y "mientras [$ i -lt $ total] do i =" expr $ i + 1 "z =" expr $ x + $ y "echo" $ z "x = $ y y = $ z hecho
Salida de muestra
[[correo electrónico protegido] ~]# chmod 755 fibonacci.sh [[correo electrónico protegido] ~]# ./Fibonacci.SH ¿Cuántos números quieres de la serie Fibonacci? ? 10 series de Fibonacci hasta 10 términos :: 0 1 1 2 3 5 8 13 21 34

Descargar fibonacci.mierda

Estás familiarizado con el hecho de que la computadora entiende solo en el formato binario, yo.mi., '0' y '1'Y la mayoría de nosotros hemos disfrutado aprendiendo la conversión de Decimal a Binario. ¿Qué tal escribir un script simple para esta compleja operación?.

Script 2: decimal2binary.mierda
#!/bin/bash para ((i = 32; i> = 0; i--)); do r = $ ((2 ** $ i)) probabilidad+= ($ r) hecho [[$# -eq 0]] & echo -en "decimal \ t \ tbinary \ n" para input_int en [correo electrónico protegido]; hacer s = 0 prueba $ #input_int -gt 11 & printf "%-10s \ t" "$ input_int" para n en $ probable [@]; hacer si [[$ input_int -lt $ n]]; Entonces [[$ s = 1]] && printf "%d" 0 else printf "%d" 1; s = 1 input_int = $ (($ input_int - $ n)) Fi hecho echo -e hecho
Salida de muestra
[[correo electrónico protegido] ~]# chmod 755 decimal2binary.sh [[correo electrónico protegido] ~]# ./Decimal2binary.SH 1121 Decimal Binary 1121 10001100001

Nota: El script anterior acepta la entrada en el momento de ejecución, que obviamente es una ayuda.

Descargar decimal2binary.mierda

Bueno el incorporado 'antes de Cristo'El comando puede convertir un decimal a binario En un guión de una sola línea. Correr, en su terminal.

[[correo electrónico protegido] ~]# echo "obase = 2; num" | antes de Cristo

Reemplazar 'Numer'con el número, que desea convertir desde Decimal a Binario. Por ejemplo,

[[correo electrónico protegido] ~]# echo "obase = 2; 121" | BC 1111001

A continuación, escribiremos un script que funcione justo opuesto al script anterior, Convertir valores binarios a Decimal.

Script 3: Binary2Decimal.mierda
#!/bin/bash echo "Ingrese un número:" Leer binario si [$ binario -eq 0] luego echo "Ingrese un número válido" de lo contrario [$ binario -ne 0] do bnumber = $ binary decimal = 0 potencia = 1 [$ Binario -ne 0] do rem = $ (expr $ binario % 10) decimal = $ ((decimal+(rem*potencia))) potencia = $ ((potencia*2)) binaria = $ (expr $ binaria / 10 ) hecho echo "$ decimal" hecho fi
Salida de muestra
[[Correo electrónico protegido] ~]# CHMOD 755 Binary2Decimal.sh [[correo electrónico protegido] ~]# ./Binary2Decimal.SH Ingrese un número: 11 3

Nota: La función anterior se puede realizar en terminal usando 'antes de Cristo'Comando como.

[[correo electrónico protegido] ~]# echo "ibase = 2; binario" | antes de Cristo

Reemplazar 'BINARIO'Con el número binario, a saber.,

[[correo electrónico protegido] ~]# echo "ibase = 2; 11010101" | BC 213

Descargar Binary2Decimal.mierda

Del mismo modo, puedes escribir la conversión de octal, hexadecimal a decimal y viceversa tú mismo. Lograr el resultado anterior en la terminal utilizando 'antes de Cristo'El comando es.

Decimal a octal
[[correo electrónico protegido] ~]# echo "obase = 8; decimal" | antes de Cristo
Decimal a hexadecimal
[[correo electrónico protegido] ~]# echo "obase = 16; decimal" | antes de Cristo
Octal a decimal
[[correo electrónico protegido] ~]# echo "ibase = 8; octal" | antes de Cristo
Hexadecimal a decimal
[[correo electrónico protegido] ~]# echo "ibase = 16; hexadecimal" | antes de Cristo
Binario a octal
[[correo electrónico protegido] ~]# echo "ibase = 2; obase = 8 binario" | antes de Cristo

Algunos de los Común numérico Las pruebas utilizadas en el lenguaje de script de shell con descripción son.

Prueba: Integer1 -EQ Integer2 Significado: Integer1 es igual a Integer2
Prueba: Integer1 -GE Integer2 Significado: Integer1 es mayor o igual a Integer2
Prueba: Integer1 -gt Integer2 Significado: Integer1 es mayor que Integer2
Prueba: Integer1 -le Integer2 Significado: Integer1 es menor o igual a Integer2
Prueba: Integer1 -lt Integer2 Significado: Integer1 es menor que Integer2
Prueba: Integer1 -ne Integer2 Significado: Integer1 no es igual a Integer2

Eso es todo para este artículo y la serie de artículos. Este es el último artículo de Serie de guiones de shell Y no significa que ningún artículo sobre lenguaje de secuencias de comandos estará aquí nuevamente, solo significa que el tutorial de scripting de shell ha terminado y cada vez que encontramos un tema interesante que vale la pena conocer o una consulta de ustedes, estaremos encantados de continuar la serie desde aquí.

Manténgase saludable, sintonizado y conectado con Tecmenta. Muy pronto vendré con otro tema interesante, a ustedes les encantará leer. Comparte tus valiosos pensamientos en Sección de comentarios.