Ho lavorato tutta la mia vita nella shell HPUX / ksh, quindi bash in questi giorni sembra lanciare nuovi modi di fare molte cose (molte delle quali non sembrano compatibili con POSIX - ad esempio 'mkdir -p / root / {abc , def, ghi, jkl} '- apparentemente questa è una best practice per le linee guida di codifica in bash / OpenStack - ma questa è una scelta completamente diversa).
Ad ogni modo, ho visto questo tipo di esecuzione dello script in più punti nel codice OpenStack:
ENABLE_VCENTER=true bash /root/stack_install.sh
Qualcuno può spiegare come funziona - So che la shell imposterà la variabile e quindi invocherà lo script della shell (che è la spiegazione del classico errore nooB per il motivo per cui l'assegnazione delle variabili non dovrebbe essere con gli spazi - ad esempio HELLO = world). Ma cosa succede esattamente internamente?
Inoltre, perché non sembra funzionare per me quando provo questo comando:
HELLO=world echo $HELLO
Ottengo il seguente output dalla shell:
[ ubuntuOne : /home/bumblebee ]
> HELLO=world echo $HELLO
[ ubuntuOne : /home/bumblebee ]
>
Cosa mi sto perdendo qui?
Grazie per le tue risposte