Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
Escreva um programa de shell no Unix para encontrar o Palindroma do número?
Existem várias abordagens para encontrar o palíndromo de um número em um script de shell Unix. Aqui estão duas versões:uma usando apenas comandos de shell embutidos (mais portáteis, mas potencialmente menos eficientes para números muito grandes) e outro usando `awk` (mais eficiente para números maiores).

Versão 1:Usando apenas shell embutido (bash)

Esta versão é mais portátil, pois depende apenas de recursos comuns à maioria dos conchos compatíveis com Bourne. No entanto, é menos eficiente para números muito grandes devido à manipulação de cordas.

`` `BASH
#!/bin/bash

Leia -p "Digite um número:" num

inverter o número usando manipulação de string


reverted_num =$ (echo "$ num" | Rev)

Compare os números originais e revertidos


se ["$ num" =="$ reverted_num"]; então
eco "$ num é um palíndromo".
outro
eco "$ num não é um palíndromo".
fi
`` `

Versão 2:Usando awk (mais eficiente)

Esta versão usa `awk`, que geralmente é mais eficiente para manipulações numéricas, especialmente com números maiores.

`` `BASH
#!/bin/bash

Leia -p "Digite um número:" num

Use Awk para reverter o número e verifique o palíndromo


awk -v num ="$ num" 'Begin {
reversa_num ="";
temp_num =num;
while (temp_num> 0) {
reverted_num =reversed_num (temp_num % 10);
temp_num =int (temp_num / 10);
}
if (num ==reversed_num) {
Imprima num "é um palíndromo".
} outro {
Imprimir num "não é um palíndromo".
}
} '
`` `

Como usar qualquer script:

1. Salve o código como um arquivo (por exemplo, `palindrome.sh`).
2. Torne -o executável:`chmod +x palindrome.sh`.
3. Execute:`./Palindrome.sh`.
4. Digite um número quando solicitado.


Explicação da versão 2 (awk):

* `-v num =" $ num "`:passa o número de entrada da variável shell `num` para o script` awk`.
* `BEGIN`:este bloco é executado antes de processar qualquer linha de entrada.
* `reversed_num =" ";`:inicializa uma string vazia para armazenar o número invertido.
* `temp_num =num;`:cria uma cópia temporária do número para evitar modificar o original.
* `while (temp_num> 0)`:loops até que o número temporário se torne 0.
* `reversed_num =reversed_num (temp_num % 10);`:extrai o último dígito usando o operador Modulo (` %`) e anexa -o a `reversed_num`.
* `temp_num =int (temp_num / 10);`:remove o último dígito da divisão inteira (` /`).
* A instrução `if` final compara os números originais e revertidos e imprime a mensagem apropriada.


A versão `awk` é geralmente recomendada para sua eficiência, especialmente ao lidar com números maiores. Escolha a versão que melhor se adapte às suas necessidades e ao ambiente do shell. Lembre-se de lidar com possíveis erros (como entrada não numérica) para um script mais robusto em um ambiente de produção.

Anterior :

Próximo :
  Os artigos relacionados
·O que é uma interface de linha de comando? 
·Como a Unix surgiu? 
·Unix Shell Tutorial 
·O Shell é uma interface entre o kernel e o usuário? 
·O que o shell comum faz enquanto um comando está execu…
·Tubo Unix Tutorial 
·Quais são as três versões mais recentes do Unix? 
·Quais são alguns comandos do GW-BASIC? 
·Prós e contras de Unix 
·Quais são os usos da linha de comando? 
  Artigos em destaque
·Meu computador está muito lento no Vista 
·Causas comuns de uma tela azul 
·Como criar um outro administrador Built-In 
·Como instalar o PHP Expresso Carregadeira em cPanel 
·Como transmitir um sinal de vídeo 
·Como atualizar do Windows Millennium Edition para o Win…
·Como particionar um Corsair Flash Voyager Mini 4Gb 
·Como Wipe & Carregar um computador em casa com XP 
·Como recuperar a Lixeira no XP 
·Na janela de ajuda do Windows, o que lista o grande nú…
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados