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

Encontré algunas instrucciones en el libro "Pro Git"

Sugiere:

  • Creación de scripts en Shell: select la carpeta según parte del nombre del file
  • Eliminar el usuario de Mac OS
  • En Terminal, ¿cómo se puede determinar qué shell se está ejecutando realmente?
  • ¿Cómo cerrar un file y una carpeta usando bash?
  • Cambiar el propietario de todos los files propiedad de x
  • ¿Por qué `df` usa" Bi "como abreviación de bytes?
    1. Descargue este file: https://github.com/git/git/blob/master/contrib/completion/git-completion.bash

      Si usas el shell Bash, Git viene con un buen script de autocompletado que puedes habilitar. Descárguelo directamente del código fuente de Git en https://github.com/git/git/blob/master/contrib/completion/git-completion.bash . Copie este file en su directory de inicio y agréguelo a su file .bashrc :

      fuente ~ / git-completion.bash

      Fuente https://github.com/progit/progit/blame/master/en/02-git-basics/01-chapter2.markdown#L1115

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

    2. Coloque este file git-completion.bash (en /opt/local/etc/bash_completion.d si desea que bash completion (para el command git) funcione en todas las counts de usuario. (Como si bash lee todos los scripts en /opt/local/etc/bash_completion.d )

      Si desea configurar Git para que automáticamente tenga la finalización del shell Bash para todos los usuarios, copie este script en el directory /opt/local/etc/bash_completion.d en los sistemas Mac o en el directory /etc/bash_completion.d/ en los sistemas Linux. . Este es un directory de scripts que Bash cargará automáticamente para proporcionar terminaciones de shell.

      Fuente: https://github.com/progit/progit/blame/master/en/02-git-basics/01-chapter2.markdown#L1119


    Descubrí que el bash de Mac OS NO lee scripts dentro de /opt/local/etc/bash_completion.d . Puse el file allí (creé todas las carpetas, porque no existían): Indicación del terminal que muestra que git-completion.bash existe y está en la ruta adecuada

    Y la finalización de git no funciona en ninguna count.

    ¿Bash lee los scripts de Mac OS X para todos los usuarios desde /opt/local/etc/bash_completion.d ?

    ¿El libro "Pro Git" está equivocado? ¿Puedo reportarlo en su página de Github?

    ¿O estoy equivocado?

  • ¿Cómo desactivo las descargas y actualizaciones automáticas?
  • AppleScript obtiene aplicación activa
  • ¿Software para voltear horizontalmente (no girar) la salida del monitor OSX?
  • ¿Cómo verifico si mi computadora está infectada con el troyano OSX / Crisis?
  • ¿Cómo puedo determinar qué está colgando git en mi máquina OS X?
  • Cómo deshabilitar la frase de contraseña de SSH salva keychain en OS X Sierra
  • 2 Solutions collect form web for “¿Bash lee los scripts de Mac OS X para todos los usuarios (scripts de finalización de tabs) de la ruta /opt/local/etc/bash_completion.d?”

    Los files básicos de finalización de bash no están instalados como parte de OS X, por lo que no hay ningún lugar para agregar su compleción de git para que sea recogido por el núcleo.

    Me disculpo pero no estoy seguro de cómo instalé la finalización de bash, pero creo que utilicé MacPorts, también puedes usar Homebrew.

    Tengo la carpeta /usr/local/opt/bash-completion/etc/bash_completion.d que contiene files de finalización para varias herramientas de command-line. La function bash_completion ciertamente lee todos los files en este directory.

    Por lo tanto, primero necesita instalar bash-completion, luego el file de finalización de git y todo estará bien.

    Bash solo lee scripts por defecto en su directory de inicio, o si faltan en /etc Ver la documentation de Bash. Si usa Terminal.app de OSX, de manera pnetworkingeterminada, lee ~/.bash_profile .

    Esto es cierto de todo bash en Linux u otros sistemas operativos.

    Para leer desde otro directory, por ejemplo, /opt/local/etc/bash_completion.d , debe editar los files de inicio en la fuente (es decir, include) los files de allí

    Las instrucciones para el script no mencionan /opt/local/... que es una location no estándar en cualquier Unix. (por no estándar, se permite su uso por packages de terceros, pero no se define lo que debería estar allí). Dicen

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

       source ~/.git-completion.sh 
    3. Considere cambiar su PS1 para que también muestre la twig actual; consulte git-prompt.sh para get más detalles.

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

    También elige esa ruta porque nada más la usa y no debe editar los files /etc en OS X ya que las actualizaciones de SO de Apple podrían sobrescribirlos, por lo que debe elegir otro lugar. (Hubiera elegido algo en /usr/local ya que allí es donde se pretende que sigan los scripts de mantenimiento manual).

    ~/.bashrc es el lugar correcto para editar y agregar la fuente. Consulte su otra pregunta y el manual de bash para configurar ~/.bash_profile El método sugerido por bash es source .bashrc en .bash_profile . Tenga en count que en OS X con Terminal.app no ​​es la única forma de ejecutar shells, por lo que puede haber sesiones que comiencen con .bashrc .

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).