Sono nuovo nello script di shell e non riesco a capirlo. Se non si ha familiarità, il comando git branch restituisce qualcosa comeCome ottenere il nome dell'attuale ramo git in una variabile in uno script di shell?
* develop
master
, dove l'asterisco indica il ramo attualmente ritirato. Quando eseguo quanto segue nel terminale:
git branch | grep "*"
ottengo:
* develop
come previsto.
Tuttavia, quando si esegue
test=$(git branch | grep "*")
o
test=`git branch | grep "*"`
E poi
echo $test
, il risultato è solo un elenco di file nella directory. Come possiamo rendere il valore di test = "* develop"?
Quindi il passaggio successivo (una volta ottenuto "* sviluppo" in una variabile chiamata test), è ottenere la sottostringa. Sarebbe solo il seguente?
currentBranch=${test:2}
stavo giocando in giro con quella funzione sottostringa ed ho ottenuto gli errori "cattivo" di sostituzione molto e non so perché.
Che cosa succede se si utilizza virgolette singole intorno l'asterisco : ''*'' invece di '" * "' –
@glenn che non è dove si verifica l'espansione, è nell'eco, come già elaborato da Marco. – wich
Prova [questo post del blog] (http://railstips.org/blog/archives/2009/02/02/bedazzle-your-bash-prompt-with-git-info/). –