В bash и zsh вы можете использовать {START..STOP..INCREMENT}, и он работает должным образом, когда START выводит 0, 2, 4, 6, ..., 20.
В bash вы также можете делать "обратные" диапазоны, изменив его на {20..0 ..- 2 } который выведет 20, 18, 16, ..., 2, 0. Однако это не работает для zsh. Метод, который работает как для bash, так и для zsh, - использовать seq. выводит 20, 18, 16, ..., 0 (как в bash, так и в zsh). Формат здесь ПЕРВЫЙ, ШАГ, ПОСЛЕДНИЙ (и ШАГ является необязательным, если его не указать, он становится 1). for i in {0..20..2}
do
echo $i
done
for i in `seq 20 -2 0`;
do
echo $i
done
Вы можете начать с
for port in $(cat demo); do
mypid=$(netstat xxxx |
grep ":${port} " | grep LISTEN | sed -e 's/.*LISTEN//'| cut -d/ -f1)
ps -fp ${mypid}
done
Possiple changes (с чем вы знакомы):
... -f1) | xargs ps -fp
sed
для вырезания / cat demo | пока читал порт; do