Det "printf”Kommando i bash scripting fungerer på samme måde”printf ()”Fungerer på C-sproget. Dette indlæg vil fokusere på “printf”Kommando, dens syntaks og eksempler, der yderligere uddyber brugen af denne kommando. Lad os kontrollere syntaksen for “printf”Kommando:
printf : Det er valgfrit at tildele output til en variabel.
Sådan bruges printf-kommandoen i bash-scripting ved hjælp af Vim-editor:
Vi bruger Vim-editor til denne vejledning på grund af dens rige funktionalitet og brugervenlighed. Få Vim på din enhed ved hjælp af:
$ sudo apt install vimStart vim editor:
$ vimLad os skrive et simpelt program til at udskrive en streng ved hjælp af "printf":
#! / bin / bashprintf “Hej Linuxhint”
For at gemme filen skal du trykke på “Esc”-Knappen for at skifte tilstand og derefter skrive “: W eksempel.sh ”og derefter“Enter ”. Åbn nu et nyt terminalvindue og skriv:
$ bash eksempel.shOvenstående kommando udfører scriptet, og udskriv "hallo linuxhint" -tekst som vist nedenfor:
Lad os nu inkludere nogle formatspecifikatorer:
#! / bin / bashprintf “% s \ n” “Hej Linuxhint”
I ovenstående eksempel fortæller "% s", at det tilsvarende argument skal behandles som streng og "\ n" for den nye linje. Tilsvarende, hvis vi bruger "% d", behandles argumentet som et heltal:
#! / bin / bashprintf “% s \ n” “Hej Linuxhint” “Lær om” “Linux”
Alle tre argumenter behandles som en streng og udskrives i en ny linje som vist i følgende output:
Et andet eksempel er nævnt nedenfor for at forstå brugen af kommandoen “printf”:
#! / bin / bashekko "Indtast dit navn"
læse navn
ekko "Indtast din alder"
læse alder
printf "Dit navn:% s \ nDin alder:% s \ n" "$ name" "$ age"
"Dit navn:% s \ n Din alder:% s \ n" er formatet, mens "$ name" "$ Age" er argumenterne. Mens "% s" peger på argumenterne.
Sådan bruges konverteringsspecifikatorer med printf-kommando:
Konverteringsspecifikationerne er tegn, der bruges med "%" -tegnet for at angive, hvordan argumenterne skal behandles. Lad os kontrollere listen over nogle almindeligt anvendte specifikationer:
Specifikator | Deskription |
---|---|
%% | Udskriver “%” symbol |
% c | Tager argumenter som et enkelt tegn |
% e og% E | Tag argument i flydende nummer og udskriver i eksponentiel notation, % e for små bogstaver og % E til store bogstaver |
% g og% G | Tag argument i flydende nummer og udskriver i normal eller eksponentiel notation |
% f | Tager argumentet som flydende tal |
% d | Tager argumenter som underskrevne heltal |
% u | Tager argumentet som usignerede heltal |
% o | Tager argumentet som et usigneret oktalt tal |
% x og% X | Tager argumenter som usignerede hexadecimale heltal |
Lad os uddybe ovenstående specifikationer med et eksempel i bash:
#! / bin / bashekko "Indtast et tal, der skal konverteres"
læse nummer
printf "Decimal:% d \ nOktal:% o \ nHex:% X \ n" "$ nummer" "$ nummer" "$ nummer"
Sådan bruges flag-, bredde- og præcisionsdirektiver med printf-kommando:
Flagdirektiver leveres med valgfri brug med kommandoen “printf”. De almindeligt anvendte flagdirektiver er
- “-” Venstre retfærdiggør output
- "+" Tilføjer "+" tegn med heltal
- "0" Tilføjer "0" med et tal i stedet for mellemrum
Breddedirektiver tilføjer plads med den output, der normalt bruges efter flag. Lad os forstå det med et eksempel:
#! / bin / bashekko "Indtast dit navn"
læse navn
ekko "Indtast din alder"
læse alder
printf “Dit navn og alder er:% 5s% 5d \ n” “$ name” “age”
"% 30s" betyder, at mellemrummet er 30 tegn langt, og for at justere outputformularen til venstre skal du bruge "-" tegnet "% -30s".
Præcisionsdirektivet består af prikken “.”Efterfulgt af positivt heltal:
#! / bin / bashprintf “%.2f ”2.56473
Outputtet ville være:
Hvis tallet er et heltal, tilføjer præcisionsdirektivet "0" før tallet. Hvis tallet er flydende punkt, specificerer præcisionsdirektivet antallet af positive cifre efter decimaltegnet. For streng specificerer det antallet af tegn, der skal vises:
#! / bin / bashprintf “%.2f \ n ”2.468936
printf “%.3d \ n ”10
printf “%.3s \ n "" samlinux "
Backslash undsluppede parametre:
Backslash escape-parametre, også kaldet escape-sekvenser, bruges med en backslash til at formatere strengen med kommandoen “printf”. Disse sekvenser repræsenterer ikke sig selv, men fortolkes i nogle andre tegn. Nogle almindeligt anvendte escape-sekvenser er:
Karakter | Beskrivelse |
---|---|
\\ | Udskriver tilbageslagstegn |
\ b | Udskriver backspace-karakter |
\ n | Udskriver output i en ny linje |
\ r | Udskriver en vognretur (markør i begyndelsen af linjen) |
\ t | Giver faneplads fra højre |
\ v | Giver fane plads |
Konklusion:
Når det kommer til at udskrive noget i bash-scripting, bruges "echo" -kommandoen mest, fordi det er let at bruge og huske. Men "ekko" -kommandoen har sin begrænsning. Derfor, for at formatere output korrekt “Printf” kommando kan bruges. Det “Printf” kommandoen leveres med masser af muligheder for at formatere strengoutput og endda grundlæggende nummers konverteringer og formatering. Denne vejledning gennemgår grundigt “printf” -kommandofunktionaliteten i bash-scripting med eksempler.