Linux 尝试在bash中使用嵌套while循环以递增顺序打印数字

Linux 尝试在bash中使用嵌套while循环以递增顺序打印数字,linux,bash,unix,while-loop,Linux,Bash,Unix,While Loop,我正在尝试编写一个bash脚本,它将接收许多行,并打印出每一行,在每一行上添加一个额外的数字,直到达到用户指定的行数为止 #/bin/bash printf“%0s\n”输入行数 读x n=0 而[“$n”-lt$x]; 做 # y=“$n” 而[0-le“$y”]; 做 printf“$y” 让我来-- 完成 回音 让n++ 完成 x=5的电流输出: 0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 这和我想

我正在尝试编写一个bash脚本,它将接收许多行,并打印出每一行,在每一行上添加一个额外的数字,直到达到用户指定的行数为止

#/bin/bash
printf“%0s\n”输入行数
读x
n=0
而[“$n”-lt$x];
做
#
y=“$n”
而[0-le“$y”];
做
printf“$y”
让我来--
完成
回音
让n++
完成
x=5的电流输出:

0 
1 0 
2 1 0 
3 2 1 0 
4 3 2 1 0 
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
这和我想要的差不多。我想要相反的顺序。 需要x=5的输出:

0 
1 0 
2 1 0 
3 2 1 0 
4 3 2 1 0 
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4

我只是为了得到空白或printf错误的无限循环而玩弄逻辑。我是新手,非常感谢您的帮助。

您可以用一种更简单的方式:

#!/bin/bash

read -p "Enter the number of lines: " x

for (( n = 1; n <= x; n++ )); do
    for (( y = 0; y < n; y++ )); do
        echo -n "$y "
    done
    echo
done

我想脚本是不言自明的,但是如果您有任何问题,请告诉我。

我使用@markp fuso的评论设法找到了一个解决方案。看起来像这样

#/bin/bash
printf“%0s\n”输入行数
读x
n=0
而[“$n”-lt$x];
做
#
y=0
而[$y-le“$n”];
做
printf“$y”
让我来++
完成
回音
让n++
完成
x=5的输出

0 
0 1 
0 1 2 
0 1 2 3 
0 1 2 3 4 

虽然我希望是这样,但我应该使用嵌套的While循环。我很欣赏这个例子!这确实有助于我理解使其工作所需的逻辑。我仍然可以修改这个来得到一个解决方案。将
for
循环转换为等价的
while
循环并不困难。祝你好运明确地说,
for((x;y;z));做done
相当于
x;而y;做Z完成
要颠倒数字顺序,只需将代码更改为具有
y
0
开始,然后计数到
n
,例如:
y=0;而[“${y}”-le“${n}]”;打印“$y”;让y++;完成