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 forder Bash erstellt
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 forder Bash erstellt
Antworten:
Um eine Zahlenfolge zu drucken, ist der Befehl 'seq' Ihr Freund
seq 8
seq 5 10druckt 5 6 7 8 9 10und seq 8 16 2druckt 8 10 12 14 16(in Schritten von 2 pro Schritt)
seq 8 2 16mit dem Inkrement zwischen erstem und letztem. seq 8 16 2druckt nichts. (Ich verstehe es auch immer falsch.)
seqist in vielen Unices weit verbreitet und Teil von coreutilsLinux, 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:
$ printf '%d\n' {1..8}
1
2
3
4
5
6
7
8
n=5; printf '%d\n' $(eval echo {0..$n})
Sie können den echoBefehl auch mit Klammererweiterung verwenden
echo -e "\n"{1..8}
1
2
3
4
5
6
7
8
Wenn Sie den ersten Zeilenumbruch nicht möchten, können Sie einen der folgenden Befehle verwenden.
echo -e "\n"{1..8}|tail -n8
echo -e "\n"{1..8}|grep .
echo -e "\n"{1..8}|grep [0-9]
echo -e "\n"{1..8}|sed 1d
tail?), Wenn Sie die generierte Liste von Zahlen in einem Skript verwenden.
Sie könnten diesen einfachen forBefehl verwenden,
$ for i in {1..8}; do echo $i; done
1
2
3
4
5
6
7
8
Durch awk,
$ awk 'BEGIN{for(i=1;i<=8;i++) {print i;}}'
1
2
3
4
5
6
7
8
while, um etwas Neues zu bringen.
for:)
bla bla bla ... print i ... bla blawenn Sie nur verwenden können printf '%d\n' {1..8}?
seqBefehl (oder die Klammererweiterung{1..N}) kennen und nach etwas anderem suchen?