Come gestire uno spazio quando si imposta $ PATH


16

Voglio aggiungere la lib sublime al mio percorso ma ha uno spazio al suo interno.

Ho provato l'ovvio come se volessi navigare nel terminal (ad es. /Applications/Sublime\ Text\ 2.app/Contents)

export PATH="/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH"

Ma ho ancora l'errore

/Applications/Sublime: No such file or directory

Potrei rinominarlo ma sono curioso di come risolverlo. Sto usando bash.


provare export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? Inoltre, quella nuova linea è destinata?
esca il

No, non è una nuova linea che viene fuori in quel modo quando l'ho incollato. Il tuo suggerimento non ha aiutato e ha ucciso il mio percorso, quindi non è stato possibile utilizzare vi, è stato necessario passare a una shell diversa per tornare indietro.
Shawn Vader,

1
il suggerimento di demure dovrebbe farlo, ma usa virgolette doppie:, export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"altrimenti $ PATH non verrà espanso.
Jaume,

Inizialmente l'ho avuto tra virgolette doppie, ma nel .bashrc non gli piaceva ancora.
Shawn Vader,

Potresti essere più preciso? Cosa intendi con "non è piaciuto"? Ricevi un errore (quale)? O semplicemente non ha funzionato?
Jaume,

Risposte:


15

Usa la barra rovesciata o le virgolette, non entrambe. Metti la sequenza backslash-space nel PATHvalore.

export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"

o

export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH

Assicurati di non avvolgere la linea: deve essere spazi, non newline.

Nota che se vedi un errore come /Applications/Sublime: No such file or directorydalla export PATH=…riga, allora hai un errore di sintassi in quella riga, come uno spazio dopo il segno uguale: l'assegnazione non cerca di cercare la directory. Se l'errore si verifica in un secondo momento, non è dovuto al valore PATH, o in tal caso solo indirettamente: è perfettamente accettabile che le voci $PATHnon esistano e una directory inesistente non porterà a un messaggio di errore .


4

Se il percorso è impostato correttamente su .bash_profile, sia con virgolette doppie o con barra rovesciata e con spazi all'interno, è necessario chiamare le variabili con virgolette doppie .

Ad esempio, se .bash_profileè impostato come di seguito:

export SUBLIMEPATH="/Applications/Sublime Text 2.app/Contents"
export PATH=$PATH:$SUBLIMEPATH/SharedSupport/bin/subl

Non puoi fare cd $SUBLIMEPATHper cambiare la directory corrente, otterrai un No such file or directoryerrore. Ma con virgolette doppie come cd "$SUBLIMEPATH"puoi.

Spero che questo aiuto per qualcosa.


3

Per risolverlo ho creato un simlink

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/sublime/bin/subl

L'ho quindi aggiunto al mio percorso usando vi su ~. / Bashrc

export PATH="/usr/local/sublime/bin/:$PATH"

Ricorda di procurarti il ​​sorgente .bashrc per raccogliere le tue modifiche

source ~/.bashrc

1

Questo non risponde alla domanda. Tuttavia, si rivolge come osservazione fatta in una delle risposte e discute una procedura simile.

È anche possibile creare un alias per Sublime Text modificando .bash_profileo .bashrc(qualunque sia il file di configurazione BASH nella home directory).

alias sublime="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"

Per fare ciò, è necessario utilizzare ENTRAMBE barre e virgolette . Si noti in particolare che questa è una situazione molto diversa dall'esportazione del PERCORSO come menzionato sopra, perché lì ha senso fare solo l'uno o l'altro, ma non entrambi.

Si noti inoltre che non è necessario creare prima un collegamento simbolico, come sostengono la documentazione ufficiale di Sublime e molte altre fonti. Questa risposta su StackOverflow ha ragione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.