[Ubuntu][Skrypt Bash]Przypisanie wyniku polecenia do zmiennej

Chcę przypisać wynik polecenia do zmiennej, np. jak w poniższej linijce.

#!/bin/bash
a=sed -n -f regex 1 | awk '{print $3}'

gdzie:
regex - plik z wyrazeniami regularnymi,
1 - plik który przeszukuję poleceniem sed.

W/w polecenie zwraca serię adresów IP i zapisuje je w zmiennej a.

  1. Jak ze zmiennej a wydobyć każdy pojedyńczy adres IP, jak je policzyć?
  2. Jak jażdy adres IP zapisać automatycznie do tablicy?
  3. Czy muszę w skrypcie Basha dawać polecanie systemowe w znakach przypominającyh pojdeyńcze cudzysłowy``?

Dzięki za odpowiedzi :slight_smile:

  1. pętla for in
  2. utwórz tablice i od razu zapisz wynik twojego seda i awk do niej, później możesz dostać jej długość dzięki ${#array[@]}
  3. tak, możesz użyć `polecenie` lub $(polecenie)

@wojtekadams - możesz podać przykład do pkt1 oraz pkt2 jak to zrobić?

Nie musisz, można tak - jest bardziej czytelnie:

 a="$(sed -n -f regex 1 | awk '{print $3}')"

Lektura:
http://tldp.org/LDP/abs/html/arrays.html

1 polubienie
declare -a arr=("ip_1" "ip_2" "ip_3")

echo "zawartosc tablicy: ${arr[@]}"
echo "wielkosc tablicy: ${#array[@]}"

for i in "${arr[@]}"
do
   echo "IP: $i"
done

do tablicy dodajesz tak:

arr+=("$i")

Proste :wink:

@marcin82, @wojtekadams dzięki za pomoc :slight_smile: