Linux 如何使用while循环在UNIX中正确执行此代码?
我正在尝试在UNIX中编写符合以下条件的脚本:Linux 如何使用while循环在UNIX中正确执行此代码?,linux,shell,unix,Linux,Shell,Unix,我正在尝试在UNIX中编写符合以下条件的脚本: 命名脚本while.sh 要求用户输入一个正整数。您可以假设用户将输入一个正整数(不需要输入验证) 使用while循环打印从0到输入的整数(包括输入的整数)的所有整数 前两步很简单,但我无法正确执行第三步。有人能帮我吗?这是您想要的脚本: echo -n "Enter a positive integer: "; read integer While [ $integer -gt 0 ]; do echo "$integer" do
while.sh
前两步很简单,但我无法正确执行第三步。有人能帮我吗?这是您想要的脚本:
echo -n "Enter a positive integer: "; read integer
While [ $integer -gt 0 ]; do
echo "$integer"
done
这是一个例子:
#!/bin/bash
echo -n "Enter a positive integer: "; read integer
while [ $integer -gt 0 ]; do
echo "$integer"
integer=`expr $integer - 1`
done
这是我想出的剧本。我可能认为这有点字面意思,但是您的问题要求显示输入的数字的0
./while.sh
Enter a positive integer: 10
10
9
8
7
6
5
4
3
2
1
下面是上面的输出:
#! /bin/bash
i=0
echo -n "Enter a positive integer: "
read integer
while [ $integer -ge $i ]
do
echo "$i"
((i++))
done
使用
expr
增加一个变量:x=`expr$x+1`
您需要一个“计数器”变量,该变量从0开始,大于用户值时停止。我不知道expr命令,这在将来会很有用,感谢您的输入。不要将expr
用于整数算术;使用POSIX算术表达式x=$((x+1))
。或者干脆((-integer))
你就是炸弹!非常感谢。((-integer))
不是标准的shell命令;只有一些外壳可以支撑它。相反,使用integer=$((integer-1))
甚至:$((-integer))
。这是另一种思考方法。我喜欢你的方式,因为它是按升序排列的,而不是按降序排列的。
Enter a positive integer: 11
0
1
2
3
4
5
6
7
8
9
10
11