¿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:

  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?

  • Sincronizar / fusionar collections de MP3 sin duplicación o grandes copys
  • No se puede SSH desde OS X Mavericks hasta el server Solaris
  • Cómo eliminar una variable de entorno en OSX usando bash
  • Encontrar terminal, renombrar por eliminación
  • acceso directo para abrir múltiples progtwigs y hacer que abran un file específico
  • ¿Cómo personalizar los resultados de escape de la ruta de drag and drop a la terminal?
  • ¿Qué hace -HUP cuando se usa con killall?
  • ¿Es posible identificar cuál es el progtwig / aplicación principal de un process en ejecución?
  • 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).