|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
System
  • Grundläggande datorkunskaper
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  • * Dator Kunskap >> System >> Unix >> Content

    Skriv ett skalprogram i Unix för att hitta palindrome av numret?

    Det finns flera tillvägagångssätt för att hitta palindromet för ett nummer i ett Unix -skriftskript. Här är två versioner:en som använder endast inbyggda skalkommandon (mer bärbara men potentiellt mindre effektiva för mycket stort antal) och en annan med `awk '(effektivare för större antal).

    Version 1:Använda endast skalinbyggda (bash)

    Denna version är mer bärbar eftersom den bara förlitar sig på funktioner som är gemensamma för de flesta Bourne-kompatibla skal. Det är emellertid mindre effektivt för mycket stora antal på grund av strängmanipulation.

    `` `bash

    #!/bin/bash

    Läs -p "Ange ett nummer:" Num

    vända numret med strängmanipulation

    reversed_num =$ (echo "$ num" | rev)

    Jämför de ursprungliga och omvända siffrorna

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

    echo "$ num är en palindrome."

    annan

    echo "$ num är inte en palindrome."

    fi

    `` `

    Version 2:Använda AWK (effektivare)

    Denna version använder "Awk", vilket i allmänhet är effektivare för numeriska manipulationer, särskilt med större antal.

    `` `bash

    #!/bin/bash

    Läs -p "Ange ett nummer:" Num

    Använd AWK för att vända numret och kontrollera om Palindrome

    awk -v num ="$ num" 'börja {

    reversed_num ="";

    temp_num =num;

    medan (temp_num> 0) {

    reversed_num =reversed_num (temp_num % 10);

    temp_num =int (temp_num / 10);

    }

    if (num ==reversed_num) {

    print num "är en palindrome."

    } annat {

    print num "är inte en palindrome."

    }

    } '

    `` `

    Hur man använder antingen skript:

    1. Spara koden som en fil (t.ex. `palindrome.sh`).

    2. Gör det körbart:`chmod +x palindrome.sh`.

    3. Kör det:`./Palindrome.sh`.

    4. Ange ett nummer när du uppmanas.

    Förklaring av version 2 (AWK):

    * `-v num =" $ num "`:passerar ingångsnumret från skalvariabeln `num` till` awk`-skriptet.

    * `BEGIN ':Detta block körs innan de bearbetar några ingångslinjer.

    * `Reversed_num =" ";`:Initialiserar en tom sträng för att lagra det omvända numret.

    * `Temp_num =num;`:Skapar en tillfällig kopia av numret för att undvika att ändra originalet.

    * `medan (temp_num> 0)`:slingor tills det tillfälliga antalet blir 0.

    * `reversed_num =reversed_num (temp_num % 10);`:extraherar den sista siffran med Modulo -operatören (` %`) och lägger till den till `reversed_num`.

    * `TEMP_NUM =int (TEMP_NUM / 10);`:tar bort den sista siffran av Integer Division (` /`).

    * Det sista uttalandet "if" jämför de ursprungliga och omvända numren och skriver ut lämpligt meddelande.

    "Awk" -versionen rekommenderas vanligtvis för sin effektivitet, särskilt när man hanterar större antal. Välj den version som bäst passar dina behov och skalmiljö. Kom ihåg att hantera potentiella fel (som icke-numerisk input) för ett mer robust manus i en produktionsmiljö.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Vad är kommandot för att visa din nuvarande plats i L…
    ·Vad står Unix -kommandot för?
    ·UNIX-kärnan Tutorial
    ·Vad är kommandot som används för att zippa en fil i …
    ·Skriv ett skalskript för att acceptera filnamnet från…
    ·Vad är ShellExecuteExfailedcode1203?
    ·Hur konvertera ett datum i en Unix Time Stamp
    ·Hur man skriver ett skript i Unix
    ·Unix CAD Program
    ·Vad är process -ID i Linux Inid?
    Utvalda artiklarna
    ·Hur Tweak Energialternativ i XP Register
    ·Hur omformatera en Windows XP-maskin
    ·Så här fixar du problem med anteckningar som saknas i…
    ·Vad är startsekvensen för ett HP-UX-system?
    ·Hur man kontrollerar diskprestanda (IOPS och latens) i …
    ·Inaktivera Flash USB-enheter på Windows XP
    ·Hur man organiserar aktivitetsfältet Flikar i Windows …
    ·Hur kan du hitta ett program i Windows 7 utan att bläd…
    ·Hur får jag Skrivare Anmälan om min uppgift Bar
    ·Hur Mass byta namn filändelser
    Copyright © Dator Kunskap https://www.dator.xyz