2016-01-11 4 views
1

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

Эта команда:

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') 

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

+0

Это действительно странно; вы используете одну и ту же переменную 'temp' в другом месте в вашем скрипте? –

+0

Вы получаете эти результаты в командной строке? Что вы получите, если просто выполните две команды в командной строке: 'temp = $ (git branch | grep 480)' и 'echo $ temp'? –

+0

Это единственный код, который я выполняю. нет кода до или после. просто назначьте и эхо. – Sachin

ответ

5

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

Результат от git branch содержит звездочку, оболочку которой расширяет список каталогов. Цитата помешает ему это сделать.

+0

спасибо за объяснение. – Sachin

Смежные вопросы