Ho uno script di shell più grande che gestisce cose diverse.Shell Script e spazi nel percorso
Si otterrà una propria posizione dal seguente ...
BASEDIR=`dirname $0`/..
BASEDIR=`(cd "$BASEDIR"; pwd)`
quindi BASEDIR verrà usato creare altre variabili come
REPO="$BASEDIR"/repo
Ma il problema è che questo script di shell non funziona se il percorso contiene spazi in cui è attualmente eseguito.
Quindi la domanda è: esiste una buona soluzione per risolvere questo problema?
quale shell stai usando? – eaj
Questo dovrebbe essere posix, perché dovrebbe essere eseguito su quanti più unix possibile ... Qui puoi vedere lo script che intendo (è usato come modello). http://svn.codehaus.org/mojo/trunk/mojo/appassembler/appassembler-maven-plugin/src/main/resources/org/codehaus/mojo/appassembler/daemon/script/unixBinTemplate – khmarbaise
Ho eseguito i comandi di cui sopra in sia 'bash' che' dash' (che Ubuntu usa per 'sh'), in una directory il cui nome della directory madre ha spazi. Sembra funzionare bene. Cosa succede se si eseguono i comandi da un terminale in una directory problematica, seguito da "echo" $ REPO "'? La mia ipotesi è che hai dimenticato di citare "$ REPO" 'da qualche parte. –