Wie könnte ich das tun mit echo
?
perl -E 'say "=" x 100'
Wie könnte ich das tun mit echo
?
perl -E 'say "=" x 100'
Sie können verwenden:
printf '=%.0s' {1..100}
Wie das funktioniert:
Bash expandiert {1..100}, so dass der Befehl wird:
printf '=%.0s' 1 2 3 4 ... 100
Ich habe das Format von printf auf =%.0s
was bedeutet, dass es immer eine einzelne =
unabhängig davon, welches Argument angeführt wird. Daher druckt es 100 =
s.
Kein einfacher Weg. Aber zum Beispiel:
seq -s= 100|tr -d '[:digit:]'
# Editor's note: This requires BSD seq, and breaks with GNU seq (see comments)
Oder vielleicht eine standardkonforme Art:
printf %100s |tr " " "="
Außerdem gibt es eine tput rep
aber die mir zur Verfügung stehenden Terminals (xterm und linux) scheinen es nicht zu unterstützen:)
Es gibt mehr als eine Möglichkeit, das zu tun.
Verwendung einer Schleife:
Die Klammererweiterung kann mit ganzzahligen Literalen verwendet werden:
for i in {1..100}; do echo -n =; done
Eine C-ähnliche Schleife erlaubt die Verwendung von Variablen:
start=1
end=100
for ((i=$start; i<=$end; i++)); do echo -n =; done
Die Verwendung des printf
eingebaut:
printf '=%.0s' {1..100}
Wenn Sie hier eine Genauigkeit angeben, wird die Zeichenkette so abgeschnitten, dass sie in die angegebene Breite passt ( 0
). Unter printf
die Formatzeichenkette wiederverwendet, um alle Argumente zu verbrauchen, wird einfach Folgendes gedruckt "="
100 Mal.
Verwendung von head
( printf
, etc) und tr
:
head -c 100 < /dev/zero | tr '\0' '='
printf %100s | tr " " "="
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.