¿Bash de Mac OS X lee los scripts para todos los usuarios (scripts de finalización de pestañas) de la ruta /opt/local/etc/bash_completion.d?

3

Me topé con algunas instrucciones en el libro "Pro Git"

Sugiere:

  1. Descarga este archivo: enlace

      

    Si usas el shell Bash, Git viene con un buen autocompletado   script que puede habilitar. Descárgalo directamente desde el código fuente de Git.   a    enlace   . Copie este archivo a su directorio de inicio y agregue esto a su   Archivo .bashrc :

         
        

    source ~ / git-completed.bash

      

    Fuente enlace

    (poner esta línea en .bashrc no funcionará en los sistemas Mac OS X que mencioné aquí: ¿Por qué Mac OS X source ~ / .bashrc? )

  2. Pon este archivo git-completion.bash (en      /opt/local/etc/bash_completion.d si quieres completar bash     (para el comando git) para trabajar en todas las cuentas de usuario. (Como si Bash lee todos los guiones en /opt/local/etc/bash_completion.d )

      

    Si desea configurar Git para que se complete automáticamente el shell Bash   para todos los usuarios, copie este script a la   directorio /opt/local/etc/bash_completion.d en sistemas Mac o en el   Directorio /etc/bash_completion.d/ en sistemas Linux. Esto es un   directorio de scripts que Bash cargará automáticamente para proporcionar   finalizaciones de shell.

    Fuente: enlace

Descubrí que el bash de Mac OS NO lee los scripts dentro de /opt/local/etc/bash_completion.d . Puse el archivo allí (creé todas las carpetas, porque no existían):

Ylafinalizacióndegitnofuncionaenningunacuenta.

¿BashdeMacOSXleescriptsparatodoslosusuariosde/opt/local/etc/bash_completion.d?

¿Estámalellibro"Pro Git"? ¿Puedo reportarlo en su página de Github?

¿O me equivoco?

    
pregunta Paul Brewczynski 04.02.2014 - 09:16

2 respuestas

-1

Los archivos de finalización de bash del núcleo no se instalan como parte de OS X, por lo que no hay ningún lugar para agregar su finalización de git para que el núcleo pueda seleccionarlo.

Pido disculpas, pero no estoy seguro de cómo instalé la finalización de bash, pero creo que usé MacPorts, también puedes usar Homebrew.

Yo tengo tengo la carpeta /usr/local/opt/bash-completion/etc/bash_completion.d que contiene archivos de finalización para varias herramientas de línea de comandos. La función bash_completion ciertamente lee todos los archivos en este directorio.

Por lo tanto, primero debes instalar bash-completed luego el archivo de finalización de git y todo estará bien.

    
respondido por el Tony Williams 04.02.2014 - 10:04
-1

Bash solo lee scripts de forma predeterminada en su directorio de inicio, o si faltan en /etc . Consulte la documentación de Bash. Si utiliza Terminal.app de OSX, entonces, de forma predeterminada, lee ~/.bash_profile .

Esto se aplica a todo bash en Linux u otros sistemas operativos.

Para leer desde otro directorio, por ej. /opt/local/etc/bash_completion.d usted tiene que editar sus archivos de inicio a la fuente (es decir, incluir) los archivos desde allí

Las instrucciones para el script no mencionan /opt/local/... , que no es una ubicación estándar en ningún Unix. (De forma no estándar, puede ser utilizado por paquetes de terceros, pero no está definido lo que debería estar allí). Ellos dicen

  
  1. Copie este archivo en algún lugar (por ejemplo, ~/.git-completion.sh ).
  2.   
  3. Agregue la siguiente línea a su .bashrc / .zshrc :

    source ~/.git-completion.sh
    
  4.   
  5. Considera cambiar tu PS1 para mostrar también la rama actual,    vea git-prompt.sh para más detalles.
  6.   

La cita de progreso asume que sabes bash. Todo lo que se dice es colocar los archivos de la primera cita en un lugar específico si desea que todos los usuarios de la máquina los usen y no en ~ , donde solo el usuario que los instala puede verlos. es decir, el punto es multiusuario versus usuario único.

También elige esa ruta como nada más la usa y no debes editar los archivos /etc en OS X, ya que las actualizaciones del sistema operativo de Apple podrían sobrescribirlos, por lo que debes elegir otro lugar. (Habría elegido algo debajo de /usr/local ya que es donde deben ir las secuencias de comandos mantenidas manualmente).

~/.bashrc es el lugar correcto para editar y agregar la fuente. Consulte su otra pregunta y el manual de bash para configurar ~/.bash_profile . La forma sugerida de bash es fuente .bashrc en .bash_profile . Tenga en cuenta que en OS X utilizando Terminal.app no es la única forma de ejecutar shells, por lo que puede haber sesiones que comiencen con .bashrc .

    
respondido por el Mark 04.02.2014 - 12:25

Lea otras preguntas en las etiquetas