Bash printf Functie: 7 Voorbeelden voor Linux

Bash printf Functie: 7 Voorbeelden voor Linux

Als je de Bash-shell al een behoorlijke tijd gebruikt, weet je waarschijnlijk hoe je strings in de Linux-terminal moet afdrukken met het echo-commando. Het printf-commando maakt het echter veel gemakkelijker om tekst met een specifieke opmaak af te drukken.





Vandaag leren we hoe we de printf-functie kunnen gebruiken om onze Bash-scriptingvaardigheden te verbeteren.





Wat is de Bash printf-functie?

Zoals de naam al doet vermoeden, is printf een functie die opgemaakte tekstreeksen afdrukt. Dat betekent dat je een stringstructuur (het formaat) kunt schrijven en deze later kunt invullen met waarden (de argumenten).





Als je bekend bent met de programmeertalen C/C++, weet je misschien al hoe printf werkt. Printf in de Bash-shell lijkt erg op elkaar, maar heeft een paar kleine verschillen.

Kom meer te weten: Beste sites om aan de slag te gaan met C++-programmering



Hoe printf in de Bash Shell te gebruiken

De basissyntaxis voor printf is:

printf format [argument]

Printf zal de . afdrukken formaat tekenreeks tijdens het implementeren lekt ( ) en richtlijnen ( % ) door het gebruik van gespecificeerde argumenten . Let op de uitvoer van het volgende commando:





$ printf 'Hello, %s' world
Hello, world

Printf nam de wereld- argument en verving de %s teken in de opgegeven tekenreeks mee.

Je merkt misschien dat Bash na de uitvoer geen nieuwe regel voor je maakt. In tegenstelling tot het echo-commando, gaat printf er niet vanuit dat u een nieuwe regel wilt nadat de uitvoer is afgedrukt. U moet dus het nieuwe regelteken gebruiken N in elk geval.





Om een ​​tekenreeks af te drukken en vervolgens naar een nieuwe regel te gaan, typt u printf 'Hallo wereld ' .

Hello, world

Het is belangrijk om in gedachten te houden dat printf zal proberen het formaat voor al uw argumenten opnieuw te gebruiken. U kunt dit in uw voordeel gebruiken, maar als u niet oppast, kunt u dit soort resultaten krijgen:

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

Houd er ook rekening mee dat als een argument ontbreekt, printf alle richtlijnen zal interpreteren als: 0 (voor een nummer) en nul (voor een touwtje).

$ printf 'Hello, %s.'
Hello, .

Nu je weet hoe Bash-scripting met printf in Linux werkt, ben je klaar om het in je commando's te gaan gebruiken.

Linux Bash printf Voorbeelden

Printf beschikt over veel formaatspecificaties die u in uw scripts kunt gebruiken. Maar vandaag behandelen we alleen enkele veelvoorkomende functies voor de functie.

1. Uitvoer opmaken met een string

Gebruik de om de uitvoer op te maken met tekenreeksen %s richtlijn.

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

2. Uitvoerreeks opmaken met decimalen

Om een ​​string op te maken met een geheel getal, kun je de . gebruiken %NS richtlijn voor een getekende decimaal.

$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.

Merk op dat als u een niet-ondertekend decimaalteken in de uitvoer wilt gebruiken, u de moet gebruiken % u richtlijn in plaats daarvan.

hoe gebruikers van ps4 te verwijderen

Verwant: Wat betekent 'Bash' in Linux?

3. Voer wiskundige functies uit met behulp van printf

Het opmaken van wiskundige functies met het printf-commando is eenvoudig. Plaats je uitdrukking gewoon tussen dubbele haakjes zoals je normaal doet in Bash, en specificeer de uitdrukking in de argumentenlijst.

$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2

4. Hexadecimale getallen opmaken

Als u een hexadecimaal getal moet opmaken, gebruikt u % x voor kleine letters en % X voor hoofdletters.

$ printf %X 1000
3E8C

Om de huidige datum en tijd af te drukken, kunt u printf combineren met de datum commando en geef de volgende instructies door.

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57

U kunt de formaatspecificaties voor maand, dag, jaar, uur, minuut en seconde zien in de bovengenoemde uitvoer.

6. Tekenreeksen opmaken met Unicode-tekens

Om Unicode-tekens af te drukken met printf, gebruik de u escape voor 16-bits Unicode en U voor 32-bits Unicode.

U kunt bijvoorbeeld de auteursrechten symbool met het volgende commando:

$ printf 'u00A9'
©

7. Voeg afstand toe aan de uitvoer

U kunt uw tekenreeksen met spatiëring opmaken door vóór de richtlijnspecificatie een minimaal aantal afgedrukte tekens te definiëren. Ongebruikte tekens worden ingevuld met spaties.

Bijvoorbeeld typen printf '%s:%5d ' 'Waarde 1' 25 'Waarde 2' 120 zal uitvoeren:

Value 1: 25
Value 2: 120

De %5d formaatspecificatie in de uitvoer geeft aan dat de opgemaakte tekenreeks minimaal vijf tekens zal bevatten. Aangezien 25 slechts twee cijfers heeft, worden spaties toegevoegd aan de resterende tekens.

Als u een negatief getal als breedte doorgeeft, wordt de richtlijn links uitgelijnd in plaats van rechts uitgelijnd.

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

Als je de breedte variabel wilt maken, kun je een asterisk doorgeven in plaats van een getal, en printf zal het volgende getal gebruiken dat het in de argumentenlijst vindt.

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

Verwant: Alles wat u moet weten over Bash For Loops in Linux

Het Linux printf-commando leren

Met het printf commando in je Bash scripting utility belt, ben je klaar om complexe en variërende strings in je terminal af te drukken. Terwijl u uw Bash-scripts ontwikkelt, is het belangrijk ervoor te zorgen dat u in de meest productieve omgeving werkt. Dit zal niet alleen uw commandoregelvaardigheden verbeteren, maar zal ook uw workflow in het algemeen verbeteren.

Deel Deel Tweeten E-mail 10 beste Linux-distributies voor ontwikkelaars

Klaar om te beginnen met de ontwikkeling van een open source besturingssysteem? Hier zijn de beste Linux-distributies voor programmeren.

wat zijn de trofeeën voor snapchat
Lees volgende Gerelateerde onderwerpen
  • Linux
  • Linux Bash Shell
  • Linux-opdrachten
Over de auteur Jordan Gloor(51 artikelen gepubliceerd)

Jordan is een stafschrijver bij MUO met een passie voor het toegankelijk en stressvrij maken van Linux voor iedereen. Hij schrijft ook handleidingen over privacy en productiviteit.

Meer van Jordan Gloor

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren