2016-02-10 67 views
-1

我想要打印数字1到100个数字,但在列中:第一列中的前1到10,第二列中的11到20,然后第三列中的21到30。 ..,第10栏91到100。打印数字1到100在10列

如何在Bash中实现此目标?我曾尝试:

#!/bin/bash 
for ((i=1; i <= 100 ; i++)) do 
    echo " $i" 
done 
+1

请发表你已经尝试 –

+0

我试图下面的代码:#/斌/庆典 为((i = 1; I <= 100;我+ +)) 做 回声 “$ I” !完成 –

回答

0

它有点重,因为它产生许多子进程。但在第一栏张贴的1班轮

paste <(seq 1 10) <(seq 11 20) <(seq 21 30) <(seq 31 40) <(seq 41 50) <(seq 51 60) <(seq 61 70) <(seq 71 80) <(seq 81 90) <(seq 91 100)

1-10,11-20第2列等..

seq 1 100 | paste - - - - - - - - - -

第一行1-10,第二行11-20等。

注意:第二个命令和第一个命令中有10个命令,<(命令)表示进程替换,即替换该过程的输出

编辑:在第一列中第二列方法纯粹使用用于循环

for ((i=1;i<=10;i++)); do for ((j=i;j<=(i+90);j+=10)); do printf "%2d " $j done echo done

为1-10,11-20等..

for ((i=0;i<10;i++)); do for ((j=1;j<=10;j++)); do printf "%2d " $[$i*10+$j] done echo done

1-10在第一排,11-20在第二行等..

+0

我们可以使用循环来做到这一点吗? –

+0

@KhanduKshirsagar你为什么想要? – 123

0

还有一个更简单的方法!

$ seq 100 | pr -10t 

1  11  21  31  41  51  61  71  81  91 
2  12  22  32  42  52  62  72  82  92 
3  13  23  33  43  53  63  73  83  93 
4  14  24  34  44  54  64  74  84  94 
5  15  25  35  45  55  65  75  85  95 
6  16  26  36  46  56  66  76  86  96 
7  17  27  37  47  57  67  77  87  97 
8  18  28  38  48  58  68  78  88  98 
9  19  29  39  49  59  69  79  89  99 
10  20  30  40  50  60  70  80  90  100 
+0

嘿嘿耶..多数民众赞成更容易。我刚刚发布了我想到的第一件事情。我想我有时候会把事情复杂化:P – ritesht93