Script Bash no encontrado El Capitán

1

He creado una secuencia de comandos Bash que simplemente hace ls -l .

En Mavericks y versiones anteriores de OSX simplemente hice un enlace simbólico al script y lo puse en la carpeta /usr/bin ( ln -s ll.sh /usr/bin/ll ) y luego pude ejecutar el script usando ll desde cualquier carpeta.

Desde la actualización a El Capitán no puedo cargar este script. He deshabilitado SIP para poder crear el enlace simbólico y el script es definitivamente ejecutable. La ubicación ( /usr/bin ) está definitivamente en $ PATH e incluso he intentado agregar una ruta al script en $ PATH también.

Nada parece funcionar, todo lo que obtengo es -bash: ll: command not found .

He reiniciado el terminal después de cada actualización de $ PATH y he intentado source ~/.bash_profile pero ninguno está haciendo ninguna diferencia.

Editar: También intenté agregar el directorio actual de los scripts a $ PATH y eso también estaba dando el mismo error. Al final, he asignado un alias a todos mis scripts para que se ejecuten.

    
pregunta Interbred Monkey 16.10.2015 - 16:17

2 respuestas

1

No estoy seguro de lo que está mal con tu configuración, pero una forma diferente (quizás mejor) de hacer lo mismo es a través del comando alias de Bash. En el símbolo del sistema, escriba:

alias ll="ls -l"

Luego, solo puede escribir ll y obtener una lista completa. Si desea que esto sea permanente, puede ponerlo en el archivo .bashrc en su directorio de inicio, que puede crear si no existe.

    
respondido por el Joe Casadonte 17.10.2015 - 17:25
4

Solo lea los comentarios y vea que está buscando una solución general, en lugar de ese ejemplo específico. Dejaré mi respuesta anterior en caso de que ayude a alguien, pero aquí hay una solución más general.

Mi primer consejo: deje /usr/bin solo. No hay razón para meterse con él y hay muchas razones por las que no se meten con él. En su lugar, agregue un directorio en otro lugar, coloque sus scripts allí y agréguelo a su variable $PATH . Si desea esto solo para su usuario, puede crear un directorio scripts o bin en su directorio de inicio, o si lo quiere disponible globalmente, puede ponerlo bajo /usr/local , por ejemplo. /usr/local/scripts o /usr/local/bin . Luego, en el archivo .bashrc en su directorio de inicio, agregue lo siguiente:

export PATH=$PATH:~/scripts:/usr/local/scripts

Si prefiere que sus comandos anulen un comando del sistema (en caso de que tengan el mismo nombre), podría hacer lo siguiente:

export PATH=~/scripts:/usr/local/scripts:$PATH

Si desea este conjunto para todos los usuarios, entonces hay un archivo global /etc/bashrc al que puede agregar lo anterior.

Para editar el bashrc global o modificar /usr/local necesita privilegios de administrador / root.

    
respondido por el Joe Casadonte 17.10.2015 - 17:39

Lea otras preguntas en las etiquetas