Come usare cd con la variabile di shell che contiene spazi

4

Sto cercando di creare una variabile di ambiente per un percorso lungo, con uno spazio e una sintassi.

Ho provato quanto segue:

export temp=/Users/username/Dropbox (Personal)

E l'ho aggiunto al mio .profile.

Ho anche provato:

export temp='/Users/username/Dropbox (Personal)'
export temp="/Users/username/Dropbox (Personal)"
export temp=/Users/username/Dropbox\ \(Personal\)

Nessuno dei lavori precedenti. Il mio obiettivo finale è digitare cd $temp o cp $temp .

    
posta undulaten 07.12.2015 - 07:26
fonte

2 risposte

3

Puoi utilizzare i caratteri jolly:

export temp="/Users/username/Dropbox??Personal?"

o

export temp="/Users/username/Dropbox*Personal*"

Ora, cd $temp dovrebbe funzionare.

    
risposta data 07.12.2015 - 10:48
fonte
12

Oltre al primo compito, tutti e tre lavorano nell'assegnazione del valore corretto a $temp . Ma a causa del modo in cui bash analizza la riga di comando, è necessario scrivere

cd "$temp"

in seguito per farlo funzionare (il che significa anche che è una buona idea usare sempre "$var" negli script di shell).

Potrebbe essere più facile nel tuo caso creare un alias con

alias cdtemp='cd "/Users/username/Dropbox (Personal)"'

da utilizzare con cd .

Per cp devi comunque aggiungere il "". Per evitare ciò, dai un nome alle tue cartelle senza usare caratteri con significato speciale per la shell o crea un link simbolico con ln -s ~/"Dropbox (Personal)" ~/DP .

    
risposta data 07.12.2015 - 07:42
fonte

Leggi altre domande sui tag