Mi sono imbattuto più volte in questo problema e vorrei trovare un modo per automatizzare / scrivere queste cose che comporta un cambiamento di identità o ambiente (non sono sicuro di come chiamarlo con precisione).
Un semplice esempio potrebbe essere uno script in cui una parte deve essere eseguita su. ( make installad esempio). Per raggiungere questo obiettivo si potrebbe usare sudo. Tuttavia, ci sono altri cambiamenti nell'ambiente che non dispongono di tale soluzione di escape. Probabilmente ben noto è il python virtualenv in cui si può facilmente immaginare una sceneggiatura simile
source virtEnv/bin/activate
python myScript.py
o semplicemente una sceneggiatura che invoca screen. Ora sto compilando gstreamer che vorrei automatizzare in uno script, perché dovrò distribuire questa installazione in molti altri computer in seguito
for i in gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-python gnonlin gst-ffmpeg
do
gst-head
cd ./$i
git checkout tags/1.1.1
./autogen.sh
make -j7
exit
done
Dov'è gst-headlo gst-uninstalledscript che carica un pkg_config locale (se ho ragione) e mi mette in un ambiente separato. Se lo metto in uno script, lo script interromperà la sua esecuzione lì e continuerà una volta fatto exitda quell'ambiente.
makeviene eseguito? Cosa non funziona nello script che hai pubblicato?