вход цикла с условием продолжения для прибытия из вывода 'команды'

#I used to have this, but I don't want to write to the disk
#
pcap="somefile.pcap"
tcpdump -n -r $pcap > all.txt
while read line; do  
  ARRAY[$c]="$line"
  c=$((c+1))  
done < all.txt  

Следующие сбои для работы.

# I would prefer something like...
#
pcap="somefile.pcap"
while read line; do  
  ARRAY[$c]="$line"
  c=$((c+1))  
done < $( tcpdump -n -r "$pcap" )

Слишком мало результатов на Google (не понимает то, что я хочу найти :(). Я хотел бы сохранить это Совместимым с границей (/bin/sh), но это не должно быть.

18
задан Felipe Alvarez 6 June 2010 в 05:32
поделиться

4 ответа

for line in $(tcpdump -n -r $pcap)  
do  
 command  
done 

Это не совсем то, что мне нужно. Но это близко. И Shell совместим. Я создаю HTML-таблицы из вывода tcpdump. Цикл for создает новую строку для каждого слова.Он должен создать новую строку для каждой строки (окончание \ n). Вставьте bin script01.sh .

1
ответ дан 30 November 2019 в 07:03
поделиться

Это работает в bash:

while read line; do  
  ARRAY[$c]="$line"
  c=$((c+1))  
done < <(tcpdump -n -r "$pcap")
18
ответ дан 30 November 2019 в 07:03
поделиться

Если вас не волнует, что вы боретесь, вы можете переключиться на Perl:

my $pcap="somefile.pcap";
my $counter = 0;
open(TCPDUMP,"tcpdump -n -r $pcap|") || die "Can not open pipe: $!\n";
while (<TCPDUMP>) {
    # At this point, $_ points to next line of output
    chomp; # Eat newline at the end
    $array[$counter++] = $_;
}

Или в оболочке используйте для :

for line in $(tcpdump -n -r $pcap)  
do  
 command  
done  
1
ответ дан 30 November 2019 в 07:03
поделиться

Это sh-совместимо:

tcpdump -n -r "$pcap" | while read line; do  
  # something
done

Однако, sh не имеет массивов, поэтому вы не можете иметь ваш код, как в sh. Другие правы в том, что и bash, и perl сегодня довольно широко распространены, и вы можете рассчитывать на их наличие на не древних системах.

UPDATE для отражения комментария @Dennis

21
ответ дан 30 November 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: