No se puede eliminar parte de $PATH

Estoy tratando de solucionar cualquier problema que tengo en brew doctor, así que veo:

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/

Miro dentro de ~/.profile, ~/.bash_profile, /etc/pathsy no veo este camino.

No hay archivos en /etc/paths.d/la carpeta que contenga esta cadena.

Entonces, ¿de dónde viene esta $PATHparte?

¿ Has probado echo $PATHen tu terminal?
¡El $PATH también puede ser modificado por agentes/daemons de lanzamiento y cualquier script de shell en sus *archivos de perfil!
@ usuario556068 intentado. ¿Cómo puede ayudarme?
@klanomath está bien, ¿cómo puedo encontrarlos?
¿Estás diciendo que no ves un directorio que termina en a /cuando ejecutas echo $PATH?

Respuestas (1)

Según su pregunta, parece que el problema es un directorio que termina en /. Y parece que Homebrew le está diciendo que el directorio que causa el error es /usr/local/Cellar/node/5.0.0/bin/. Si este es el caso, simplemente debe eliminar el seguimiento /de este directorio.

Pero también parece que está diciendo que no ve este directorio de problemas en su archivo $PATH. Ejecutar echo $PATHle mostrará qué directorios están en su RUTA. Si su PATH contiene muchos directorios como el mío, esto puede ser un poco difícil de leer. Entonces, ¿tal vez solo lo estás pasando por alto?

En cualquier caso, aquí hay un script simple para mostrarle todos los directorios en su RUTA; 1 por línea.

#!/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 si prefieres copiar y pegar directamente en tu terminal:

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

O una forma aún más simple como lo señala fd0 en los comentarios:

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

Esto también tiene la ventaja adicional de no tener que perder el tiempo con IFS.

Usando cualquiera de los scripts anteriores, si encuentra una línea que termina en a, /entonces ha encontrado al culpable.

Su código podría simplificarse usando trcon un herestring-tr -s ':' '\n' <<<"$PATH"
@fd0 Gracias por la información. Actualicé la respuesta con tu método simplificado.
No, veo este problema como parte de PATH si ejecuto echo $PATH. La salida será /usr/local/Cellar/node/5.0.0/bin/ /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/sbin /Users/grawl/.composer/vendor/bin.
Entonces necesitas eliminar el final /de/usr/local/Cellar/node/5.0.0/bin/
@ usuario556068 obviamente. Pero no puedo encontrar un archivo para editar.
Estoy confundido.. o tu lo estas. /usr/local/Cellar/node/5.0.0/bines un directorio no un archivo.