Назначить результат команды в переменную

Я получил этот странный результат сегодня при назначении результата команды в переменной.

Эта команда:

git branch | grep 480 

дает мне результат, как это:

branch_name_480

При условии branch_name_480 это единственный филиал с 480 в нем.

Но когда я пытаюсь сделать это:

temp=`git branch | grep 480`

Или это:

temp=$(git branch | grep 480)

и после этого: echo $tempэто не дает мне ожидаемого результата - который должен быть таким же, как и раньше. Вместо этого это дает мне результат как all my directory listing and the expected result в одной строке.

Я знаю, что могу сделать это, чтобы получить ожидаемый результат:

temp=$(echo 'git branch | grep 480')

Итак, мой вопрос: почему это происходит? Почему я не получаю ожидаемый результат раньше?

1 ответ

Решение

Использование echo "$temp",

Выход из git branch включает в себя звездочку, которую оболочка расширяет до списка каталогов. Цитирование не позволит этого сделать.

Другие вопросы по тегам