Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Besturingssysteem >> unix >> Content
Schrijf een shell-programma in Unix om het palindroom van het getal te vinden?
Er bestaan ​​verschillende benaderingen om het palindroom van een getal in een Unix-shellscript te vinden. Hier zijn twee versies:één die alleen ingebouwde shell-opdrachten gebruikt (draagbaarder maar potentieel minder efficiënt voor zeer grote aantallen) en een andere die `awk` gebruikt (efficiënter voor grotere aantallen).

Versie 1:alleen ingebouwde shell-ins gebruiken (bash)

Deze versie is draagbaarder omdat deze alleen afhankelijk is van de functies die de meeste Bourne-compatibele shells gemeen hebben. Het is echter minder efficiënt voor zeer grote aantallen vanwege stringmanipulatie.

``` bash

#!/bin/bash

read -p "Voer een getal in:" num

Keer het getal om met tekenreeksmanipulatie

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

Vergelijk de originele en omgekeerde cijfers

if [ "$num" =="$omgekeerd_num" ]; Dan

echo "$num is een palindroom."

anders

echo "$num is geen palindroom."

fi

```

Versie 2:awk gebruiken (efficiënter)

Deze versie maakt gebruik van `awk`, wat over het algemeen efficiënter is voor numerieke manipulaties, vooral bij grotere getallen.

``` bash

#!/bin/bash

read -p "Voer een getal in:" num

Gebruik awk om het getal om te draaien en te controleren op palindroom

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

omgekeerd_num ="";

temp_num =getal;

terwijl (temp_num> 0) {

omgekeerd_getal =omgekeerd_getal (temp_num % 10);

temp_num =int(temp_num / 10);

}

if (num ==omgekeerd_num) {

print num " is een palindroom."

} anders {

print num " is geen palindroom."

}

}'

```

Hoe je beide scripts gebruikt:

1. Sla de code op als een bestand (bijvoorbeeld `palindrome.sh`).

2. Maak het uitvoerbaar:`chmod +x palindrome.sh`.

3. Voer het uit:`./palindrome.sh`.

4. Voer een nummer in wanneer daarom wordt gevraagd.

Uitleg van versie 2 (awk):

* `-v num="$num"`:Geeft het invoernummer van de shellvariabele `num` door aan het `awk`-script.

* `BEGIN`:Dit blok wordt uitgevoerd voordat er invoerregels worden verwerkt.

* `reversed_num ="";`:Initialiseert een lege string om het omgekeerde nummer op te slaan.

* `temp_num =num;`:Creëert een tijdelijke kopie van het nummer om te voorkomen dat het origineel wordt gewijzigd.

* `while (temp_num> 0)`:Loopt door totdat het tijdelijke nummer 0 wordt.

* `reversed_num =reversed_num (temp_num % 10);`:Extraheert het laatste cijfer met behulp van de modulo-operator (`%`) en voegt dit toe aan `reversed_num`.

* `temp_num =int(temp_num / 10);`:Verwijdert het laatste cijfer door gehele deling (`/`).

* De laatste `if`-instructie vergelijkt de originele en omgekeerde cijfers en drukt het juiste bericht af.

De `awk`-versie wordt over het algemeen aanbevolen vanwege zijn efficiëntie, vooral als het om grotere aantallen gaat. Kies de versie die het beste bij uw behoeften en shell-omgeving past. Vergeet niet om potentiële fouten (zoals niet-numerieke invoer) af te handelen voor een robuuster script in een productieomgeving.

Previous: Next:
  unix
·Een programma schrijven om all…
·Waarom is Unix stabiel? 
·Unix Shared Memory Tutorial 
·Wat is het commando dat wordt …
·Hoe maak je een ZIP-bestand in…
·Wat is slaan in computertermin…
·Hoe worden processen gemaakt e…
·Gelaagde aanpak in Unix bestur…
·Wat is Kill -12 in UNIX? 
  Related Articles
Wat is de betekenis van het hebben van e…
Wat is de rol van de kernel bij het func…
Wat is een schrijffout en welke invloed …
Wat zijn de belangrijkste kenmerken en f…
Wat zijn de voordelen van het gebruik va…
Wat zijn de voordelen van het gebruik va…
Wat zijn enkele vragen die tijdens een s…
Wat zijn enkele creatieve manieren om co…
Hoe kan ik een stapelteller effectief ge…
  Besturingssysteem Articles
·Hoe te Euphoria gebruiken Met Ubuntu 
·Is er een pong-emulator voor Mac OSX? 
·Hoe maak je een alternatieve IP-adres in…
·Hoe u kunt voorkomen dat Snapchat de cam…
·Hoe om programma's te verwijderen van St…
·Hoe typ je een haakje op Mac? 
·Hoe Desktop gadgets in Windows Vista Kie…
·Hoe een Apple Watch opnieuw op te starte…
·Verschillende stijlen van Windows bij he…
Copyright © Computer Kennis https://www.nldit.com