с tcsh я хочу напечатать «Hello» для каждого x, y, z, e и f. Но со следующим скриптом он печатает только x. Может ли кто-нибудь сказать мне, как напечатать «Привет» также для y, z, e и f?
#! /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
Результат:
х
Привет
Привет
Привет
Привет
Привет
у
г
е
ф
Переместите инициализацию переменной '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
вы только один раз инициализируете переменную итератора 'j' значением 0. Тебе нужно. для повторной инициализации. переменная в 0 внутри цикла foreach.