BASH-programmering

Bash Printf-opdracht

Bash Printf-opdracht
Werkend met bash-scripting, gebruiken we meestal het "echo" -commando om elke uitvoer af te drukken, wat handig en gemakkelijk te gebruiken is en meestal aan de vereiste voldoet. Maar eenvoud komt met beperking; echo commando heeft zijn eigen beperking als het gaat om het formatteren van de uitvoer, in dat geval, “printf"commando speelt zijn rol".

De "printf” commando in bash scripting werkt op dezelfde manier “printf ()” werkt in de C-taal. Dit bericht zal zich richten op de “printf” commando, de syntaxis en voorbeelden die het gebruik van dit commando verder uitwerken. Laten we de syntaxis van de "printf” commando:

printf

: Het is optioneel om output toe te wijzen aan een variabele.
: Het is een tekenreeks die verschillende indelingsspecificaties kan bevatten, zoals "%s", "%b", "%d", "%f" en backslash-escape
: De argumenten kunnen elke waarde of variabele zijn

Hoe de printf-opdracht te gebruiken in bash-scripts met behulp van de Vim-editor:

We gebruiken de Vim-editor voor deze handleiding vanwege de rijke functionaliteit en het gebruiksgemak. Download Vim op je apparaat met:

$ sudo apt install vim

Start vim-editor:

$ vim

Laten we een eenvoudig programma schrijven om een ​​string af te drukken met “printf”:

#! /bin/bash
printf "Hallo Linuxhint"

Om het bestand op te slaan, drukt u op de "Esc” knop om van modus te wisselen en typ vervolgens “:w voorbeeld.sh" en dan "Enter”. Open nu een nieuw terminalvenster en typ:

$bash voorbeeld.sh

De bovenstaande opdracht voert het script uit en drukt de tekst "hallo linuxhint" af, zoals hieronder wordt weergegeven:

Laten we nu enkele formaatspecificaties opnemen:

#! /bin/bash
printf “%s\n” “Hallo Linuxhint”

In het bovenstaande voorbeeld geeft "%s" aan dat het corresponderende argument moet worden behandeld als string en "\n" voor de nieuwe regel. Evenzo, als we "%d" gebruiken, wordt het argument behandeld als een geheel getal:

#! /bin/bash
printf “%s\n” “Hallo Linuxhint” “Meer informatie over” “Linux”

Alle drie de argumenten worden als een tekenreeks behandeld en in een nieuwe regel afgedrukt, zoals wordt aangetoond in de volgende uitvoer:

Een ander voorbeeld wordt hieronder genoemd om het gebruik van de opdracht "printf" te begrijpen:

#! /bin/bash
echo "Vul uw naam in"
lees naam
echo “Vul je leeftijd in”
lees leeftijd
printf “Uw naam: %s\nUw leeftijd: %s\n” “$name” “$age”

“Uw naam : %s\n Uw leeftijd : %s\n ” is het formaat terwijl “$name” "$leeftijd" zijn de argumenten. Terwijl "%s" de argumenten aanwijst.

Conversiespecificaties gebruiken met de opdracht printf:

De conversiespecificaties zijn tekens die worden gebruikt met het "%"-teken om aan te geven hoe de argumenten moeten worden behandeld. Laten we eens kijken naar de lijst met enkele veelgebruikte bestekschrijvers:

Specificatie: Dbeschrijving
%% Drukt het “%”-symbool af
%c Neemt argumenten als een enkel teken op
%e en %E Neem argument in getal met drijvende komma en drukt af in exponentiële notatie, %e voor kleine letters en %E voor hoofdletter
%g en %G Neem argument in drijvende-kommagetal en drukt af in normale of exponentiële notatie
%f Neemt argument als zwevende getallen
%d Neemt argumenten als gehele getallen met teken
%u Neemt argument als gehele getallen zonder teken
%O Neemt argument als een niet-ondertekend octaal getal
%x en %X Neemt argumenten als niet-ondertekende hexadecimale gehele getallen

Laten we de bovenstaande specificaties verder uitwerken met een voorbeeld in bash:

#! /bin/bash
echo "Voer een getal in om te converteren"
lees nummer
printf “Decimaal : %d\nOctal : %o\nHex : %X\n” “$nummer” “$nummer” “$nummer”

De richtlijnen Vlag, Breedte en Precisie gebruiken met de opdracht printf:

Vlagrichtlijnen worden optioneel gebruikt met de opdracht "printf". De veelgebruikte vlagrichtlijnen zijn:

  • "-" Links rechtvaardig de uitvoer
  • "+" Voegt een "+"-teken toe aan een geheel getal
  • “0” Voegt “0” toe met een cijfer in plaats van spaties

Breedte-richtlijnen voegen ruimte toe met de uitvoer die gewoonlijk na de vlag wordt gebruikt. Laten we het begrijpen met een voorbeeld:

#! /bin/bash
echo "Vul uw naam in"
lees naam
echo “Vul je leeftijd in”
lees leeftijd
printf "Uw naam en leeftijd zijn: %5s %5d\n" "$name" "leeftijd"

"%30s" betekent dat de spatie 30 tekens lang is en om het uitvoerformulier links uit te lijnen, gebruikt u het "-"-teken "%-30s".

De precisierichtlijn bestaat uit de punt “.” Gevolgd door positief geheel getal:

#! /bin/bash
printf "%.2f” 2.56473

De uitvoer zou zijn:

Als het getal een geheel getal is, voegt de precisie-instructie "0" toe voor het getal. Als het getal van het type met drijvende komma is, specificeert de precisierichtlijn het aantal positieve cijfers achter de komma. Voor string specificeert het het aantal tekens dat moet worden weergegeven:

#! /bin/bash
printf "%.2f\n” 2.468936
printf "%.3d\n” 10
printf "%.3s\n” “samlinux”

Backslash Escaped-parameters:

Backslash-escape-parameters, ook wel escape-reeksen genoemd, worden gebruikt met een backslash om de tekenreeks op te maken met de opdracht "printf". Deze sequenties vertegenwoordigen zichzelf niet, maar interpreteren in sommige andere karakters. Enkele veelgebruikte ontsnappingsreeksen zijn:

Karakter Omschrijving
\\ Drukt backslash-tekens af
\b Drukt backspace-teken af
\n Drukt uitvoer af in een nieuwe regel
\r Drukt een regelterugloop af (cursor aan het begin van de regel)
\t Geeft tabruimte van rechts
\v Geeft tabruimte

Conclusie:

Als het gaat om het afdrukken van iets in bash-scripting, wordt het "echo" -commando het meest gebruikt omdat het gemakkelijk te gebruiken en te onthouden is. Maar het "echo" -commando heeft zijn beperking. Om de uitvoer op de juiste manier te formatteren, moet de "printf" commando kan worden gebruikt. De "printf" commando wordt geleverd met tal van opties om tekenreeksuitvoer te formatteren en zelfs de conversies en opmaak van basisnummers. Deze handleiding bevat een grondig begrip van de functionaliteit van het "printf"-commando in bash-scripting met voorbeelden.

Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...
De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...