Простой цикл for в скрипте оболочки - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть репозиторий cvs с разными модулями.Настройка всегда одинакова:

/data/cvs/<repo>/CVSROOT/passwd

Мне нужен короткий скрипт, который перебирает все хранилища и выполняет эту команду:

grep "^iq" <repo>/CVSROOT/passwd | sort | uniq

Цель состоит в том, чтобы все имена пользователей, которыеначать с префикса "iq".Выводом будет список с именами пользователей, паролями и cvsmodule:

iqabcde:5!h8kdh2937slj:cvsabc

Эти выходные данные должны быть разделены с использованием «:» в качестве терминатора.Мне нужно иметь 3 переменные, к которым я могу получить доступ.

Если честно, я не очень разбираюсь в сценариях оболочки.Было бы здорово, если бы кто-нибудь мог помочь, потому что я думаю, что это разрешимо.

Большое спасибо

1 Ответ

1 голос
/ 02 февраля 2012

Мне скучно.

#!/bin/bash
for repo in /data/cvs/*
do
  IFS=: read username hash module < <(grep "^iq" "$repo"/CVSROOT/passwd | sort | uniq)
  echo "Name: $username, Hash: $hash, Module: $module"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...