Impossibile rimuovere una parte di $ PATH

1

Sto cercando di risolvere qualsiasi problema che ho in brew doctor , quindi vedo:

Warning: Some directories in your path end in a slash.
Directories in your path should not end in a slash. This can break other
doctor checks. The following directories should be edited:
    /usr/local/Cellar/node/5.0.0/bin/

Considero ~/.profile , ~/.bash_profile , /etc/paths - e non vedo questo percorso.

Non ci sono file nella cartella /etc/paths.d/ che contiene questa stringa.

Quindi da dove questa $PATH parte?

    
posta Даниил Пронин 18.08.2016 - 04:43
fonte

1 risposta

1

Dalla tua domanda sembra che il problema sia una directory che termina con / . E sembra che Homebrew ti stia dicendo che la directory che causa l'errore è /usr/local/Cellar/node/5.0.0/bin/ . Se questo è il caso, devi semplicemente rimuovere il% di trascinamento% co_de da questa directory.

Ma sembra anche che tu stia dicendo che non vedi la directory di questo problema nel tuo / . L'esecuzione di $PATH ti mostrerà quali directory sono nel tuo PERCORSO. Se il tuo PATH contiene molte directory come le mie, questo può essere un po 'difficile da leggere. Quindi forse lo stai semplicemente ignorando?

In ogni caso, ecco un semplice script per mostrare tutte le directory nel PATH; 1 per riga.

#!/bin/bash

# save IFS to a variable    
old_IFS=${IFS$' \t\n'}

#set IFS to a colon
IFS=':'

for item in ${PATH[@]}
do 
    echo $item
done

# set IFS back to the default setting
IFS=$old_IFS

O se preferisci copiare e incollare direttamente nel tuo terminale:

old_IFS=${IFS-$' \t\n'}; IFS=':'; for item in ${PATH[@]}; do echo $item; done; IFS=$old_IFS

O un modo ancora più semplice, come sottolineato da fd0 nei commenti:

tr -s ':' '\n' <<<"$PATH"

Questo ha anche il vantaggio di non aver bisogno di scherzare con echo $PATH .

Usando uno degli script di cui sopra, se trovi una riga che termina con IFS , hai trovato il colpevole.

    
risposta data 27.09.2016 - 10:33
fonte

Leggi altre domande sui tag