Как получить имя ветки из тега

Правильным решением является использование такой подстановки команд:

variable=$(complex_command)

как в

message=$(echo 'hello')

(или, если уж на то пошло, message=helloв данном случае ).

Ваш конвейер:

echo 'hello' | message=$(</dev/stdin)

или

echo 'hello' | read message

действительно работает. Единственная проблема заключается в том, что используемая вами оболочка будет запускать вторую часть конвейера в подоболочке. Эта подоболочка уничтожается при выходе из конвейера, поэтому значение $messageне сохраняется в оболочке.

Здесь видно, что это работает:

$ echo 'hello' | { read message; echo "$message"; }
hello

... но поскольку среда подоболочки отделена (и исчезла):

$ echo "$message"

(нет выхода)

Одним из решений для вас было бы переключиться на ksh93, который умнее в этом:

$ echo 'hello' | read message
$ echo "$message"
hello

Другим решением для bashможет быть установка опции оболочки lastpipe. Это заставит последнюю часть конвейера работать в текущей среде. Однако это не работает в интерактивных оболочках, поскольку lastpipeтребует, чтобы управление заданиями не было активным.

#!/bin/bash

shopt -s lastpipe
echo 'hello' | read message
echo "$message"
4
15.08.2019, 09:48
1 ответ

git branchбез -aпоказывает только локальные ветви.

Вероятно, вы хотите, чтобы git branch -a --contains v0.3отображались все ветки с github, содержащие указанный тег. Но это может быть менее полезно, чем вы думаете -в нем будет указана ветвь, на которой изначально был создан тег, а также любые ветки, порожденные этой меткой.

2
27.01.2020, 20:55

Теги

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