Сохранить вывод нескольких команд в один и тот же файл [дубликат]

Возможно, немного попутно, но точка зрения этого сайта может помочь понять общую тему удаления веток:

http://railsware.com/blog/2014/08/11/git-housekeeping-tutorial-clean -up-устаревшие-ветки-в-локальных-и-удаленных-репозиториях/

Кое-что из того, что уже обсуждалось здесь, частично совпадает, но основное внимание уделяется уборке: удалению веток, удаленных и локальных, которые больше не нужны. в среде сотрудничества. В частности, команда git branch --mergedидентифицирует ветки, которые можно безопасно удалить из-за их слияния с вашей основной веткой (или любой другой веткой, которая вас интересует). Если вы сотрудничаете, некоторые причудливые мини-скрипты, такие как этот, будут представлять вещи в удобном, удобоваримом формате с датами и авторами.

for branch in `comm -12  <(git branch --merged|awk '{print($1)}') <(git branch -r --merged|awk '{print($1)}'|awk -F \/ '{print($2)}')`; do echo -e `git show --format="%ci %cr %an" $branch | head -n 1` \\t$branch; done | sort -r

(К сожалению, «приятный, удобоваримый» не относится к форматированию самих скриптов.)

1
23.05.2019, 21:29
2 ответа

Использовать подоболочку

(whoami; date) > ~user/directory/file
5
27.01.2020, 23:12

Этого можно добиться с помощью одного перенаправления с помощью команды echo/printf и подстановки команд:

printf '%s\n' "$(whoami)" "$(date)" > /home/user/folder/file

ИМО, это не очень хорошее решение, оно не очень удобно для чтения/управления... особенно если добавить больше команд.

Чтобы не вводить путь несколько раз, вы можете просто сохранить его в переменной:

file=/home/user/folder/file
whoami>"$file"
date>>"$file"

Но для этого также требуется несколько перенаправлений.

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

{
whoami
date
} > /home/user/folder/file

Или в одну строку:

{whoami;date;} > /home/user/folder/file
3
27.01.2020, 23:12

Теги

Похожие вопросы