1. Masuk ke dalam 1 variabel
Coba ini:
foo1=$(curl https://domain.com/file.xml | grep -E "string1|string2")
Ini akan berjalan curl1 kali dan menerima kejadian string1atau string2.
2. Memahami 2 variabel
Jika mereka variabel yang berbeda maka ubah sedikit taktik. Tangkap output dari curldan kemudian grepsesudahnya.
output=$(curl https://domain.com/file.xml)
foo1=$(echo "$output" | grep "string1")
foo2=$(echo "$output" | grep "string2")
3. Grepping ke dalam array
Anda juga bisa menyimpan hasil dalam array bukan variabel yang terpisah.
output=$(curl https://domain.com/file.xml)
readarray foo < <(echo "$output" | grep "string1|string2")
Yang ini agak sulit untuk ditangani jika hasil Anda dari grep mungkin tidak mengembalikan hasil, karena hasil dari "string2" mungkin item pertama atau kedua dalam array, tapi saya menyediakannya di sini hanya sebagai demonstrasi dari pendekatan.
4. Membaca ke dalam vars dari grep
Namun metode lain yang memanfaatkan readperintah bersama dengan proses substitusi ( <( ..cmd..)).
$ read -d"\n" foo1 foo2 \
<(curl https://domain.com/file.xml | grep -E "string1|string2")
Ini lagi bisa rumit jika pencarian "string1" tidak menghasilkan apa-apa, menyebabkan kecocokan untuk "string2" muncul di $foo1. Juga pendekatan ini cenderung kurang portabel daripada # 2 atau # 3 di atas.