printf: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
$ <b>printf "%d\n" 0x9a9a</b> | $ <b>printf "%d\n" 0x9a9a</b> | ||
Wiederholung eines Zeichens (hier 66-mal das Zeichen "#") mit abschliessendem Zeilenumbruch. | |||
$ <b>printf '#%.0s' {1..66} && printf "%s\n"</b> | |||
################################################################## | |||
$ <b>TRENNER="$(printf '#%.0s' {1..66})" && echo "${TRENNER}"</b> | |||
################################################################## | |||
$ <b>echo "$(printf '#%.0s' {1..66})"</b> | |||
################################################################## | |||
Wiederholung eines Zeichens (hier 80-mal das Zeichen "#"). | Wiederholung eines Zeichens (hier 80-mal das Zeichen "#"). | ||
Zeile 11: | Zeile 22: | ||
$ <b>CH="$(printf "%80s" "")" && printf "%s\n" "${CH// /#}"</b> | $ <b>CH="$(printf "%80s" "")" && printf "%s\n" "${CH// /#}"</b> | ||
################################################################################ | ################################################################################ | ||
Ausgabe von zwei Argumenten (hier "113" und "1") innerhalb einer Zeichenkette. | |||
$ <b>printf '<ABCField field="%s.%s" value="0"/>\n' 113 1</b> | |||
<ABCField field="113.1" value="0"/> | |||
== FAQ == | |||
=== - : invalid option === | |||
Bei der Verwendung von printf in Bash-Skripten kann es vorkommen, dass jemand die Formatierungszeichenkette mit "-" (Bindestrich, Minus-Zeichen) beginnt. printf interpretiert dies als einen Parameter und | |||
* machte entweder etwas nicht beabsichtigtes | |||
* oder erzeugt die folgende Fehlermeldung | |||
bash: printf: - : invalid option | |||
printf: usage: printf [-v var] format [arguments] | |||
Um dies zu verhindern, muss das Zeichen "-" entwertet werden. Dazu wird die Zeichenkette "--" als erstes Argument vor der Formatierungskette übergeben. Beispiel: | |||
$ <b>printf -- "- Name: %s" "$NAME"</b> | |||
{{cat|Shell-Befehl}} | {{cat|Shell-Befehl}} | ||
{{cat|Zeichenkette}} | {{cat|Zeichenkette}} |
Aktuelle Version vom 15. Mai 2018, 21:27 Uhr
Der Shell-Befehl printf gibt eine formatierte Zeichenkette aus.
Verwendung
Umrechnung einer Hexadezimalzahl in eine Dezimalzahl.
$ printf "%d\n" 0x9a9a
Wiederholung eines Zeichens (hier 66-mal das Zeichen "#") mit abschliessendem Zeilenumbruch.
$ printf '#%.0s' {1..66} && printf "%s\n" ##################################################################
$ TRENNER="$(printf '#%.0s' {1..66})" && echo "${TRENNER}" ##################################################################
$ echo "$(printf '#%.0s' {1..66})" ##################################################################
Wiederholung eines Zeichens (hier 80-mal das Zeichen "#").
$ CH="$(printf "%80s" "")" && printf "%s\n" "${CH// /#}" ################################################################################
Ausgabe von zwei Argumenten (hier "113" und "1") innerhalb einer Zeichenkette.
$ printf '<ABCField field="%s.%s" value="0"/>\n' 113 1 <ABCField field="113.1" value="0"/>
FAQ
- : invalid option
Bei der Verwendung von printf in Bash-Skripten kann es vorkommen, dass jemand die Formatierungszeichenkette mit "-" (Bindestrich, Minus-Zeichen) beginnt. printf interpretiert dies als einen Parameter und
- machte entweder etwas nicht beabsichtigtes
- oder erzeugt die folgende Fehlermeldung
bash: printf: - : invalid option printf: usage: printf [-v var] format [arguments]
Um dies zu verhindern, muss das Zeichen "-" entwertet werden. Dazu wird die Zeichenkette "--" als erstes Argument vor der Formatierungskette übergeben. Beispiel:
$ printf -- "- Name: %s" "$NAME"