Bash Printf -kommando

Bash Printf -kommando
Arbeider med bash -skripting, bruker vi stort sett “Echo” -kommandoen for å skrive ut en hvilken som helst utdata, som er praktisk og enkel å bruke og oppfyller kravet mesteparten av tiden. Men enkelhet kommer med begrensning; Echo -kommando har sin egen begrensning når det gjelder formatering av utdataene, i så fall, "printf”Kommando spiller sin rolle.

printf”Kommando i bash scripting fungerer på samme måte”printf ()”Fungerer på C -språket. Dette innlegget vil fokusere på "printf”Kommando, syntaks og eksempler som ytterligere utdyper bruken av denne kommandoen. La oss sjekke syntaksen til "printf”Kommando:

printf

: Det er valgfritt å tilordne utdata til en variabel.
: Det er en streng som kan inneholde forskjellige formatspesifikasjoner som "%s", "%b", "%d", "%f" og backslash -flukt
: Argumentene kan være hvilken som helst verdi eller variabel

Hvordan bruke printf -kommando i bash scripting ved hjelp av vim editor:

Vi bruker VIM -redaktør for denne guiden på grunn av dens rike funksjonalitet og brukervennlighet. Få Vim på enheten din ved å bruke:

$ sudo apt install vim

Start Vim Editor:

$ vim

La oss skrive et enkelt program for å skrive ut en streng ved å bruke "printf":

#! /bin/bash
printf “Hei Linuxhint”

For å lagre filen, trykk på “ESC”-Knappen for å bytte modus og deretter skrive inn deretter “: W Eksempel.sh ”og deretter“Enter ”. Åpne nå et nytt terminalvindu og skriv:

$ bash -eksempel.sh

Kommandoen ovenfor vil utføre skriptet The Print Out “Hello Linuxhint” -teksten som vist nedenfor:

La oss nå inkludere noen formatspesifikasjoner:

#! /bin/bash
printf “%s \ n” “hallo linuxhint”

I eksemplet ovenfor forteller “%s” at det tilsvarende argumentet skal behandles som streng og "\ n" for den nye linjen. Tilsvarende, hvis vi bruker "%d", vil argumentet bli behandlet som et heltall:

#! /bin/bash
printf “%s \ n” “Hello Linuxhint” “Lær om” “Linux”

Alle tre argumentene vil bli behandlet som en streng og skrevet ut i en ny linje som demonstrert i følgende utgang:

Et annet eksempel er nevnt nedenfor for å forstå bruken av “Printf” -kommandoen:

#! /bin/bash
ekko “Skriv inn navnet ditt”
Les navn
Ekko “Skriv inn din alder”
Les alder
printf “Ditt navn: %s \ nyour alder: %s \ n” “$ name” “$ alder”

“Ditt navn: %S \ n din alder: %s \ n” er format mens “$ name” “$ Alder” er argumentene. Mens “%s” peker argumentene.

Hvordan bruke konverteringsspesifikasjoner med Printf -kommando:

Konverteringsspesifikasjonene er tegn som brukes med “%” -tegnet for å indikere hvordan du behandler argumentene. La oss sjekke listen over noen ofte brukte spesifikasjoner:

Spesifikasjon Description
%% Skriver ut “%” -symbol
%c Tar argumenter som en enkelt karakter
%e og %e Ta argumentet i flytende punktnummer og utskrifter i eksponentiell notasjon, %e for små bokstaver og %E for store bokstaver
%g og %g Ta argument i flytende punktnummer og utskrifter i normal eller eksponentiell notasjon
%f Tar argument som flytende tall
%d Tar argumenter som signerte heltall
%u Tar argument som usignerte heltall
%o Tar argument som et usignert oktalt nummer
%x og %x Tar argumenter som usignerte heksadesimale heltall

La oss ytterligere utdype de ovennevnte spesifikasjonene med et eksempel i bash:

#! /bin/bash
ekko “Skriv inn et tall for å konvertere”
Lesnummer
printf “desimal: %d \ noctal: %o \ nhex: %x \ n” “$ nummer” “$ nummer” “$ nummer”

Hvordan bruke flagg-, bredde- og presisjonsdirektiver med Printf -kommando:

Flaggdirektiver kommer med valgfri bruk med “printf” -kommandoen. De ofte brukte flaggdirektivene er

  • “-” Venstre rettferdiggjør produksjonen
  • “+” Legger til “+” -tegn med heltall
  • “0” legger til “0” med et tall i stedet for mellomrom

Bredde direktiver gir plass med utgangen som vanligvis brukes etter flagget. La oss forstå det med et eksempel:

#! /bin/bash
ekko “Skriv inn navnet ditt”
Les navn
Ekko “Skriv inn din alder”
Les alder
printf “Du navn og alder er: %5s %5d \ n” “$ name” “alder”

“%30S” betyr at plassen er 30 tegn langt, og for å justere utgangsskjemaet igjen, bruk "-" -tegnet "%-30-tallet".

Presisjonsdirektivet består av prikken “.”Følgende av positivt heltall:

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

Utgangen ville være:

Hvis tallet er et heltall, vil presisjonsdirektivet legge til “0” før nummeret. Hvis tallet er flytende punkttype, vil presisjonsdirektivet spesifisere antall positive sifre etter desimalpunktet. For streng spesifiserer den antall tegn som skal vises:

#! /bin/bash
printf “%.2f \ n ”2.468936
printf “%.3d \ n ”10
printf “%.3S \ n ”“ Samlinux ”

Backslash slapp unna parametere:

Backslash Escape -parametere, også kalt rømningssekvenser, brukes med en tilbakeslag for å formatere strengen med “printf” -kommandoen. Disse sekvensene representerer ikke seg selv, men tolker i noen andre karakterer. Noen ofte brukte rømningssekvenser er:

Karakter Beskrivelse
\\ Skriver ut backslash -karakter
\ b Skriver ut backspace -karakter
\ n Skriver ut utgangen i en ny linje
\ r Skriver ut en vognretur (markør i begynnelsen av linjen)
\ t Gir fanen plass fra høyre
\ V Gir fanen plass

Konklusjon:

Når det gjelder å skrive ut noe i bash -skripting, brukes “Echo” -kommandoen mest brukt fordi det er enkelt å bruke og huske. Men "ekko" -kommando har sin begrensning. Derfor, for å formatere utdataene riktig, “Printf” Kommando kan brukes. De “Printf” Kommandoen kommer med mange alternativer for å formatere strengutgang og til og med grunnleggende talls konverteringer og formatering. Denne guiden forstår grundig “printf” -kommandoens funksjonalitet i bash -skripting med eksempler.