2011-10-12 17 views
20

Voglio impostare una variabile di ambiente che abbia spazio in essa. si tratta di un percorso di una cartella e il nome della cartella è: /home/mehrabib/il mio videoImposta la variabile di ambiente con spazio linux

modifico .bashrc e aggiungere la seguente riga a esso:

export $VIDEO=/home/mehrabib/my\ video 

ed eseguire questi comandi:

echo $VIDEO 
cd $VIDEO 

il risultato è:

/home/mehrabib/my video 
/home/mehrabib/my :no such file or directory 

cambio a

export $VIDEO=/home/mehrabib/my\\\ video 

ed eseguire questi comandi:

echo $VIDEO 
cd $VIDEO 

il risultato è:

/home/mehrabib/my\ video 
/home/mehrabib/my\ :no such file or directory 

cosa devo fare?

+1

Wrap tra virgolette, come 'VAR = "/ home/mehrabib/il mio video"' – birryree

risposta

24

Si dovrebbe fare

export VIDEO="/home/mehrabib/my video" 

e di riassumere i commenti di Dan fino anche fare

cd "$VIDEO" 

che si espanderà a

cd "/home/mehrabib/my video" 

di nuovo.

Personalmente, sono arrivato a preferire la sintassi $ {VIDEO}.

+1

il '$' non è necessario. –

+2

Il '$' è necessario quando 'cd'ing nella directory. 'cd" VIDEO "' non funzionerà. –

1

Prova a quotare VIDEO: cd "$VIDEO".

+2

e fare lo stesso per 'export VIDEO ="/home/mehrabib/il mio video "' –

6

È anche possibile sostituire caratteri speciali: utilizzare * come carattere jolly per sostituire lo spazio.

VIDEO = "/ home/mehrabib/m * o"

+0

... a meno che non ci sia un'altra directory che inizia con 'm' e finisce in 'o'; come "mono" :) – user2023370

+2

Sono di fronte a questo su Mac OSX, per me le virgolette non ha funzionato, invece il simbolo * ha funzionato. – AbrahamJP

Problemi correlati