Ich suche nur eine einfache Sache, foo 8 wird dies zeigen:
1
2
3
4
5
6
7
8
PS: Ich suche nur nach Kommandozeile. Ich weiß, wie man das mit for
der Bash erstellt
command-line
Mohammad Reza Rezwani
quelle
quelle
seq
Befehl (oder die Klammererweiterung{1..N}
) kennen und nach etwas anderem suchen?Antworten:
Um eine Zahlenfolge zu drucken, ist der Befehl 'seq' Ihr Freund
quelle
seq 5 10
druckt5 6 7 8 9 10
undseq 8 16 2
druckt8 10 12 14 16
(in Schritten von 2 pro Schritt)seq 8 2 16
mit dem Inkrement zwischen erstem und letztem.seq 8 16 2
druckt nichts. (Ich verstehe es auch immer falsch.)seq
ist in vielen Unices weit verbreitet und Teil voncoreutils
Linux, aber nicht POSIX und nicht portabel .{1..8}
gibt Ihnen einen einfachen Argumentationsbereich in Bash.Wenn Sie diese Zeile für Zeile benötigen, würde ich vorschlagen, sie so etwas wie printf zuzuführen:
quelle
n=5; printf '%d\n' $(eval echo {0..$n})
Sie können den
echo
Befehl auch mit Klammererweiterung verwendenWenn Sie den ersten Zeilenumbruch nicht möchten, können Sie einen der folgenden Befehle verwenden.
quelle
tail
?), Wenn Sie die generierte Liste von Zahlen in einem Skript verwenden.Alternativ können Sie es auf einfachste Weise wie folgt erhalten:
ODER:
8 kann durch Ihre positive Ganzzahl 'N' ersetzt werden!
quelle
Sie könnten diesen einfachen
for
Befehl verwenden,Durch awk,
quelle
while
, um etwas Neues zu bringen.for
:)bla bla bla ... print i ... bla bla
wenn Sie nur verwenden könnenprintf '%d\n' {1..8}
?