"GIT_DIR = myproject.git git init": Что эта командная строка делает на bash? - PullRequest
1 голос
/ 07 марта 2012

При инициализации нового репозитория git (в Linux / Ubuntu) мы используем:

# What this doing:
GIT_DIR=myproject.git git init  
#The above line will output: Initialized empty Git Repo...

cd myproject.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

Первая строка " GIT_DIR = ... " меня смущает, кажется, bash получит переменную env и git использует first для запуска нового проекта, НО как? Кто может объяснить эту маленькую магию?

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

В Bourne-совместимых оболочках переменные могут назначаться без ключевого слова export.
При использовании перед запуском программы переменные будут экспортированы в среду
и, таким образом, будут отображаться как реальная средапеременные для программы:

$ VARIABLE=value ./myprogram [arguments]

В системах, в которых есть программа env, вы можете сделать это следующим образом:

$ env VARIABLE=value ./myprogram [arguments]
2 голосов
/ 07 марта 2012

Это особенность Bash и других Bourne-совместимых оболочек:

VAR=val cmd

работает cmd с VAR, установленным на val, а в остальном - окружением самой оболочки.

Попробуйте выполнить следующие команды:

printenv
export FOO=bar
printenv | grep '^FOO='
FOO=baz printenv | grep '^FOO='
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...