Cálculo de expressões matemáticas na linguagem de script de shell - Parte V

Cálculo de expressões matemáticas na linguagem de script de shell - Parte V

Vocês se sentiriam confortáveis, entendendo Scripts de shell e escrevê -los fluentemente, conforme sua necessidade. Este é o último post desta série tutorial, onde estaremos realizando um pouco complexo Operações matemáticas usando a linguagem de script. Os últimos quatro artigos de Script de shell séries que são cronologicamente.

Aprenda parte de script de shell - V
  1. Entenda as dicas básicas de linguagem de script linux shell - Parte I
  2. 5 scripts de shell para iniciantes Linux para aprender programação de shell - Parte II
  3. Navegando pelo mundo do Linux Bash Script - Parte III
  4. Aspecto matemático da programação do Linux Shell - Parte IV

Vamos começar com a série Fibonacci

Um padrão de números em que cada número é a soma de dois números anteriores. A série é 0, 1, 1, 2, 3, 5, 8… Por definição, os dois primeiros números no Fibonccai Sequência é 0 e 1.

Script 1: Fibonacci.sh
#!/Bin/Bash Echo "Quantos números você deseja da série Fibonacci ?"Leia Total x = 0 y = 1 i = 2 eco" Fibonacci Series até $ Termos Totes :: "echo" $ x "echo" $ y "enquanto [$ i -lt $ total] + 1 "z =" expr $ x + $ y "echo" $ z "x = $ y y = $ z doado
Saída de amostra
[[Email Protected] ~]# chmod 755 Fibonacci.sh [[email protegido] ~]# ./Fibonacci.sh quantos números você deseja da série Fibonacci ? 10 Série Fibonacci até 10 termos :: 0 1 1 2 3 5 8 13 21 34

Baixe Fibonacci.sh

Você está familiarizado com o fato de o computador entender apenas no formato binário, eu.e., '0' e '1'E a maioria de nós gostou de aprender a conversão de Decimal para Binário. Que tal escrever um script simples para esta operação complexa.

Script 2: Decimal2Binary.sh
#!/bin/bash para ((i = 32; i> = 0; i--)); do r = $ ((2 ** $ i)) probabilidade+= ($ r) feito [[$# -EQ 0]] e echo -en "decimal \ t \ tbinary \ n" para input_int em [email protegido]; do s = 0 teste $ #input_int -gt 11 & printf "%-10s \ t" "$ input_int" para n em $ probability [@]; faça se [[$ input_int -lt $ n]]; então [[$ s = 1]] && printf "%d" 0 else printf "%d" 1; s = 1 input_int = $ (($ input_int - $ n)) fi feito eco -e feito
Saída de amostra
[[Email protegido] ~]# chmod 755 decimal2binary.sh [[email protegido] ~]# ./Decimal2binary.SH 1121 Binário Decimal 1121 10001100001

Observação: O script acima aceita a entrada no tempo de execução, o que obviamente é um auxílio.

Download decimal2binary.sh

Bem, o embutido 'bc'O comando pode converter um decimal para binário em um script de linha única. Corra, no seu terminal.

[[email protegido] ~]# echo "obase = 2; num" | bc

Substituir 'Num'Com o número, que você deseja converter de Decimal para Binário. Por exemplo,

[[Email protegido] ~]# echo "obase = 2; 121" | BC 1111001

Em seguida, estaremos escrevendo um script que função oposto do script acima, Converter valores binários para Decimal.

Script 3: binário2decimal.sh
#!/bin/bash echo "Digite um número:" Leia o binário se [$ binário -eq 0] Então echo "insira um número válido" else enquanto [$ binário -ne 0] do bnumber = $ decimal binário = 0 potência = 1 while [$ Binário -ne 0] do rem = $ (expr $ binário % 10) decimal = $ ((decimal+(rem*power)) power = $ ((power*2)) binário = $ (expr $ binário / 10 ) feito eco "$ decimal" feito fi
Saída de amostra
[[Email protegido] ~]# chmod 755 binário2decimal.sh [[email protegido] ~]# ./Binário2decimal.sh digite um número: 11 3

Observação: A função acima pode ser executada no terminal usando 'bcComando como.

[[email protegido] ~]# echo "ibase = 2; binário" | bc

Substituir 'BINÁRIO'Com o número binário, viz.,

[[Email protegido] ~]# echo "ibase = 2; 11010101" | BC 213

Download binário2decimal.sh

Da mesma forma, você pode escrever conversão de octal, hexadecimal para decimal e vice-versa você mesmo. A realização do resultado acima resulta em terminal usando 'bc'Comando é.

Decimal a octal
[[email protegido] ~]# echo "obase = 8; decimal" | bc
Decimal a hexadecimal
[[email protegido] ~]# echo "obase = 16; decimal" | bc
Octal a decimal
[[Email protegido] ~]# echo "ibase = 8; octal" | bc
Hexadecimal a decimal
[[Email protegido] ~]# echo "ibase = 16; hexadecimal" | bc
Binário para octal
[[Email protegido] ~]# echo "ibase = 2; obase = 8 binário" | bc

Alguns dos Numérico comum Testes usados ​​na linguagem de script de shell com descrição é.

Teste: Integer1 -EQ Integer2 Significado: Integer1 é igual a Integer2
Teste: Integer1 -ge Integer2 Significado: Integer1 é maior ou igual a Integer2
Teste: Integer1 -gt Integer2 Significado: Integer1 é maior que o número inteiro2
Teste: Integer1 -le Integer2 Significado: Integer1 é menor ou igual a Integer2
Teste: Integer1 -LT Integer2 Significado: Integer1 é menor que Integer2
Teste: Integer1 -ne Integer2 Significado: Integer1 não é igual a Integer2

Isso é tudo para este artigo e a série de artigos. Este é o último artigo de Série de scripts de shell E isso não significa que nenhum artigo sobre o idioma de script estará aqui novamente, significa apenas que o tutorial de script de shell terminou e sempre que encontrarmos um tópico interessante que vale a pena saber ou uma consulta de vocês, ficaremos felizes em continuar a série de aqui.

Mantenha -se saudável, sintonizado e conectado a Tecmint. Muito em breve eu virei com outro tópico interessante, vocês vão adorar ler. Compartilhe seus pensamentos valiosos em Seção de comentários.