Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> unix >> .

Napíšte program Shell v UNIX, aby ste našli palindróm čísla?

Existuje niekoľko prístupov na nájdenie palindrómu čísla v skripte Unix Shell. Tu sú dve verzie:jedna, ktorá používa iba vstavané príkazy shellu (prenosnejšie, ale potenciálne menej efektívnejšie pre veľmi veľké počty) a druhá s použitím `awk` (efektívnejšia pre väčšie čísla).

Verzia 1:Používanie iba vstavaných škrupín (bash)

Táto verzia je prenosnejšia, pretože sa spolieha iba na funkcie spoločné pre väčšinu škrupín kompatibilných s Bourne. Je však menej efektívny pre veľmi veľké množstvo kvôli manipulácii s reťazcami.

`` `Bash

#!/bin/bash

prečítať -p "Zadajte číslo:" num

obráťte číslo pomocou reťazcovej manipulácie

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

Porovnajte pôvodné a obrátené čísla

ak ["$ num" =="$ reversed_num"]; potom

Echo "$ num je palindróm."

inak

Echo „$ num nie je palindróm“.

FI

`` `

Verzia 2:Používanie AWK (efektívnejšie)

Táto verzia používa „awk“, ktorá je vo všeobecnosti efektívnejšia pre numerické manipulácie, najmä s väčším počtom.

`` `Bash

#!/bin/bash

prečítať -p "Zadajte číslo:" num

Použite AWK na zvrátenie čísla a skontrolujte Palindrome

awk -v num ="$ num" 'začatie {

reversed_num ="";

temp_num =num;

while (temp_num> 0) {

reversed_num =reversed_num (temp_num % 10);

temp_num =int (temp_num / 10);

}

if (num ==reversed_num) {

Tlač čísla "je palindróm."

} else {

Tlač NUM "nie je palindróm."

}

} '

`` `

Ako používať buď skript:

1. Uložte kód ako súbor (napr. „Palindrom.sh`).

2. Urobte z neho spustiteľný:`chmod +x palindrome.sh`.

3. Bežte to:`./Palindrom.sh`.

4. Po výzve zadajte číslo.

Vysvetlenie verzie 2 (AWK):

* `-v num =" $ num "`:odovzdá vstupné číslo z premennej shell `num` do skriptu` awk`.

* `Begin`:Tento blok vykoná pred spracovaním akýchkoľvek vstupných riadkov.

* `reversed_num =" ";`:Inicializuje prázdny reťazec na uloženie obráteného čísla.

* `temp_num =num;`:Vytvorí dočasnú kópiu čísla, aby sa zabránilo úpravám originálu.

* `while (temp_num> 0)`:slučky, kým sa dočasné číslo nestane 0.

* `reversed_num =reversed_num (temp_num % 10);`:Extrahuje poslednú číslicu pomocou operátora modula (` %`) a pripomína ho k `reversed_num`.

* `temp_num =int (temp_num / 10);`:Odstráni poslednú číslicu celočíselným delením (` /`).

* Výpis Final `if` porovnáva pôvodné a obrátené čísla a vytlačí príslušnú správu.

Verzia „Awk`“ sa všeobecne odporúča pre svoju účinnosť, najmä pri riešení väčších čísel. Vyberte verziu, ktorá najlepšie vyhovuje vašim potrebám a prostrediu škrupiny. Nezabudnite zvládnuť potenciálne chyby (ako je neočiaci vstup) pre robustnejší skript vo výrobnom prostredí.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené