我想编写一个必须在 bash shell 提示符下工作的嵌套 for 循环。单行命令中的嵌套 for 循环。
例如,
for i in a b; do echo $i; done
a
b
在上面的例子中,for循环是在单行命令中执行的。像这样,我在 shell 提示符下尝试了嵌套的 for 循环。它不工作。这个怎么做。请更新我。
我想编写一个必须在 bash shell 提示符下工作的嵌套 for 循环。单行命令中的嵌套 for 循环。
例如,
for i in a b; do echo $i; done
a
b
在上面的例子中,for循环是在单行命令中执行的。像这样,我在 shell 提示符下尝试了嵌套的 for 循环。它不工作。这个怎么做。请更新我。
该问题不包含嵌套循环,仅包含单个循环。但是这个嵌套版本也可以:
# for i in c d; do for j in a b; do echo $i $j; done; done
c a
c b
d a
d b
一行一行(需要分号):
for i in 0 1 2 3 4 5 6 7 8 9; do for j in 0 1 2 3 4 5 6 7 8 9; do echo "$i$j"; done; done
为易读而格式化(不需要分号):
for i in 0 1 2 3 4 5 6 7 8 9
do
for j in 0 1 2 3 4 5 6 7 8 9
do
echo "$i$j"
done
done
关于如何在多行中布局 shell 代码有不同的看法;这就是我通常使用的内容,除非我将下一个操作放在与 the 相同的行上do
(在此处保存两行)。
#!/bin/bash
# loop*figures.bash
for i in 1 2 3 4 5 # First loop.
do
for j in $(seq 1 $i)
do
echo -n "*"
done
echo
done
echo
# outputs
# *
# **
# ***
# ****
# *****
for i in 5 4 3 2 1 # First loop.
do
for j in $(seq -$i -1)
do
echo -n "*"
done
echo
done
# outputs
# *****
# ****
# ***
# **
# *
for i in 1 2 3 4 5 # First loop.
do
for k in $(seq -5 -$i)
do
echo -n ' '
done
for j in $(seq 1 $i)
do
echo -n "* "
done
echo
done
echo
# outputs
# *
# * *
# * * *
# * * * *
# * * * * *
for i in 1 2 3 4 5 # First loop.
do
for j in $(seq -5 -$i)
do
echo -n "* "
done
echo
for k in $(seq 1 $i)
do
echo -n ' '
done
done
echo
# outputs
# * * * * *
# * * * *
# * * *
# * *
# *
exit 0