Я пишу сценарий оболочки. Мне нужно захватить длину массива. Массив - это выход одной команды. Я пробовал это как: N = 0Длина массива в скрипте оболочки
for pid in $(ps -ef | grep java| egrep "tomcat|jboss|JBoss" | awk '{print $2}') ;
do
array[$N]="$pid"
echo "${#array[@]}"
arraylen=${#array[@]}
if [ $arraylen=1 ]
then
(sleep $sleepTime;jstack ${array[$0]} > jStack_${array[$0]}_prod.txt &)
elif [$arraylen =2]
then
(sleep $sleepTime;jstack ${array[$0]} > jStack_${array[$0]_prod.txt &)
(sleep 10;jstack ${array[$1]} > jStack_${array[$1]}_prod.txt &)
elif [$arraylen =3]
then
(sleep $sleepTime;jstack ${array[$0]} > jStack_${array[$0]}_prod.txt &)
(sleep 10;jstack ${array[$1]} > jStack_${array[$1]}_prod.txt &)
(sleep 10;jstack ${array[$2]} > jStack_${array[$2]}_prod.txt &)
done
Пожалуйста, помогите.
Да, ваш код помогает мне получить длину массива. Но мне нужно использовать цикл for, поскольку мне нужно запустить некоторые другие команды внутри цикла for после получения длины массива. Пожалуйста, напишите мой отредактированный блок кода в моем исходном вопросе. – user3627319
ok проверьте мой раздел ** EDIT ** для циклического прохождения различных результатов. – anubhava