Цель чтения Rev в этом Bash Oneliner - PullRequest
1 голос
/ 05 октября 2011

Итак, следующий bash oneliner сгенерирует вывод, аналогичный git log

git rev-list --reverse HEAD | while read rev; do git log -1 $rev; done

Что я хочу знать, какова цель read rev в этом контексте?Есть ли другой способ, которым это может быть написано без read rev perhapse с xargs?

1 Ответ

3 голосов
/ 05 октября 2011

Да, вы можете использовать xargs в этом случае:

git rev-list --reverse HEAD | xargs -L 1 -J % git log -1 %

Чтобы объяснить, как здесь работает read rev, цикл читает одну строку из своего ввода (в данном случае, из вывода git rev-list --reverse HEAD команда) и сохраняет его в переменной rev.Тогда любые команды внутри цикла могут использовать переменную rev.Как пример:

seq 1 5 | while read x; do echo "value is $x"; done

покажет

value is 1
value is 2
value is 3
value is 4
value is 5
...