L oop но вывести на какую строку ссылаются - PullRequest
0 голосов
/ 30 марта 2020

У меня есть сценарий, который я написал в l oop через учетные записи электронной почты и вывод, если учетной записи назначены разрешения sendAs.

#!/bin/bash

while IFS= read -r line
do
     zmprov -l ga "$line" | grep zimbraACE >> accountsout.txt

done < accounts.txt

Сценарий работает, но выходной, но вывод не помогает я могу определить, к каким учетным записям относится каждая запись или набор записей.

zimbraACE: 12bf9714-9c6d-46ce-b15d-c127bfffae usr viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all -viewFreeBusy
zimbraACE: 538c5495-8e50-43cb-9131-e893695bd5 usr sendAs
zimbraACE: 23beb905-67c0-4e0d-9e85-405de5babd usr sendAs

Я надеюсь, что он выведет ссылку на строку перед атрибутами а-ля:

zimbrasucks@imbra.org
zimbraACE: 12bf9714-9c6d-46ce-b15d-c127bfffae usr viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all -viewFreeBusy
dontusethisproduct@zimbra.org
zimbraACE: 538c5495-8e50-43cb-9131-e893695bd5 usr sendAs
zimbraACE: 23beb905-67c0-4e0d-9e85-405de5babd usr sendAs

Я знаю, что я нужно ловить вывод каждой итерации как вторую переменную, а затем выводить обе переменные для l oop, но я даже не уверен, с чего начать в bash.

1 Ответ

1 голос
/ 30 марта 2020

Сохранить вывод grep в переменной. Затем проверьте, был ли grep успешным, и распечатайте письмо перед печатью переменной.

while IFS= read -r line
do
    temp=$(zmprov -l ga "$line" | grep zimbraACE)
    if [ $? -eq 0 ]
    then
        echo "$line"
        echo "$temp"
    fi
done < accounts.txt > accountsout.txt
...