Connaissances Informatiques >> systèmes >> Unix >> Content
  Derniers articles
  • Quel est le but de HIMEM.SYS ? 
  • Quelle est la différence entre un f…
  • Comment vérifier l'état d'un Unix …
  • Quel est le but de la commande tune2…
  • Quelle est la syntaxe de la commande…
  • Qu'est-ce que l'alphabet en binaire …
  • Quelle est l'abréviation de fax ? 
  • Quel est le but du profil dans Unix?…
  • Comment faire pour interroger XL cla…
  • Comment faire pour supprimer Dir en …
  •   Unix
  • Compétences informatiques de base

  • Linux

  • Mac OS

  • Ubuntu

  • Unix

  • fenêtres

  • windows Vista

  • windows XP

  • Windows 7

  • Windows 10

  • Windows 11

  • Windows 2012

  • Windows 2016

  • Windows 2019

  • Windows 2022

  • Apple

  • Android

  • iOS

  • CentOS
  •  
    Unix

    Écrire un programme shell sous Unix pour trouver le palindrome du nombre ?

    Plusieurs approches existent pour trouver le palindrome d'un nombre dans un script shell Unix. Voici deux versions :une utilisant uniquement les commandes shell intégrées (plus portables mais potentiellement moins efficaces pour de très grands nombres) et une autre utilisant `awk` (plus efficace pour des nombres plus grands).

    Version 1 :utilisation uniquement des éléments intégrés au shell (bash)

    Cette version est plus portable car elle s'appuie uniquement sur des fonctionnalités communes à la plupart des shells compatibles Bourne. Cependant, cette méthode est moins efficace pour les très grands nombres en raison de la manipulation des chaînes.

    ```bash

    #!/bin/bash

    read -p "Entrez un nombre : " num

    Inversez le nombre en utilisant la manipulation de chaîne

    reverse_num=$(echo "$num" | rév)

    Comparez les numéros d'origine et inversés

    if [ "$num" =="$reversed_num" ]; alors

    echo "$num est un palindrome."

    autre

    echo "$num n'est pas un palindrome."

    fi

    ```

    Version 2 :Utilisation d'awk (plus efficace)

    Cette version utilise `awk`, qui est généralement plus efficace pour les manipulations numériques, notamment avec des nombres plus grands.

    ```bash

    #!/bin/bash

    read -p "Entrez un nombre : " num

    Utilisez awk pour inverser le nombre et vérifier le palindrome

    awk -v num="$num" 'BEGIN {

    inversé_num ="" ;

    temp_num =num;

    tandis que (num_temp> 0) {

    inversé_num =inversé_num (temp_num % 10) ;

    num_temp =int(num_temp / 10);

    }

    if (num ==inversé_num) {

    print num "est un palindrome."

    } autre {

    print num "n'est pas un palindrome."

    }

    }'

    ```

    Comment utiliser l'un ou l'autre script :

    1. Enregistrez le code sous forme de fichier (par exemple, « palindrome.sh »).

    2. Rendez-le exécutable :`chmod +x palindrome.sh`.

    3. Exécutez-le :`./palindrome.sh`.

    4. Entrez un numéro lorsque vous y êtes invité.

    Explication de la version 2 (awk) :

    * `-v num="$num"` :transmet le numéro d'entrée de la variable shell `num` au script `awk`.

    * `BEGIN` :ce bloc s'exécute avant de traiter les lignes d'entrée.

    * `reversed_num ="";` :Initialise une chaîne vide pour stocker le nombre inversé.

    * `temp_num =num;` :Crée une copie temporaire du numéro pour éviter de modifier l'original.

    * `while (temp_num> 0)` :boucle jusqu'à ce que le nombre temporaire devienne 0.

    * `reversed_num =reversed_num (temp_num % 10);` :extrait le dernier chiffre à l'aide de l'opérateur modulo (`%`) et l'ajoute à `reversed_num`.

    * `temp_num =int(temp_num / 10);` :Supprime le dernier chiffre par division entière (`/`).

    * L'instruction finale « if » compare les nombres originaux et inversés et imprime le message approprié.

    La version `awk` est généralement recommandée pour son efficacité, notamment lorsqu'il s'agit de grands nombres. Choisissez la version qui correspond le mieux à vos besoins et à votre environnement shell. N'oubliez pas de gérer les erreurs potentielles (comme les saisies non numériques) pour un script plus robuste dans un environnement de production.

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Quelle est la commande utilisée pour afficher le contenu d’un fichier sous Linux ? 
  • À quel point Unix est-il sécurisé? 
  • Quelle est l’utilité de plus de commandes sous Unix ? 
  • Quel protocole est utilisé pour transférer des fichiers entre les systèmes Unix et Linux ? 
  • Qu’est-ce que Kill -12 sous UNIX ? 
  • Qu’est-ce que la commande menning sudo sous Linux ? 
  • En quoi la programmation C est-elle si différente et puissante dans l'environnement UNIX par rappor…
  • Quel est le but du système d’exploitation UNIX ? 
  • GREP Tutoriel pour Unix 
  • Quels sont les niveaux de sécurité disponibles sous UNIX ? 
  • Connaissances Informatiques © http://www.ordinateur.cc