Shell 脚本 while 在 for 循环内循环
Shell script while loop inside a for loop
使用 tcsh,我想为每个 x、y、z、e 和 f 打印“Hello”。但是使用下面的脚本,它只打印 x。谁能告诉我如何为 y、z、e 和 f 打印“Hello”?
#! /bin/tcsh -f
set arr=(x y z e f)
set j = 0
foreach i ($arr)
echo $i
while ($j < 5)
echo "Hello"
@ j++
end
end
结果是:
x
你好
你好
你好
你好
你好
y
z
e
f
将 'j' 变量的初始化移动到 foreach 循环中:
#! /bin/tcsh -f
set arr=(x y z e f)
foreach i ($arr)
echo $i
set j = 0
while ($j < 5)
echo "Hello"
@ j++
end
end
输出:
$ ./s.sh
x
Hello
Hello
Hello
Hello
Hello
y
Hello
Hello
Hello
Hello
Hello
z
Hello
Hello
Hello
Hello
Hello
e
Hello
Hello
Hello
Hello
Hello
f
Hello
Hello
Hello
Hello
Hello
使用 tcsh,我想为每个 x、y、z、e 和 f 打印“Hello”。但是使用下面的脚本,它只打印 x。谁能告诉我如何为 y、z、e 和 f 打印“Hello”?
#! /bin/tcsh -f
set arr=(x y z e f)
set j = 0
foreach i ($arr)
echo $i
while ($j < 5)
echo "Hello"
@ j++
end
end
结果是:
x
你好
你好
你好
你好
你好
y
z
e
f
将 'j' 变量的初始化移动到 foreach 循环中:
#! /bin/tcsh -f
set arr=(x y z e f)
foreach i ($arr)
echo $i
set j = 0
while ($j < 5)
echo "Hello"
@ j++
end
end
输出:
$ ./s.sh
x
Hello
Hello
Hello
Hello
Hello
y
Hello
Hello
Hello
Hello
Hello
z
Hello
Hello
Hello
Hello
Hello
e
Hello
Hello
Hello
Hello
Hello
f
Hello
Hello
Hello
Hello
Hello