EDITAR

EDITAR

He vistoestepero no me funciona. No estoy usando la versión de bash de Git sino la que viene con cygwin, por lo que podría ser parte del problema. Así es como configuré mi pestaña en Console2:

Title: bash.exe
Shell: C:\cygwin\bin\bash.exe --login -i
Startup dir: %HOMEDRIVE%%HOMEPATH%

Esta es mi entrada de registro:

Directory
    shell
        Console2
            Open Console2 Here
            command
                "C:\Console2\Console.exe" -d "%1"

bash siempre comienza en mi directorio de inicio en lugar del directorio en el que estoy haciendo clic, luego tengo que cd /cygdrive/d/code... etc. Intenté eliminar el valor en el campo "Directorio de inicio", cambiándolo a %1, %1% sin suerte.

yo también lo intentéesta soluciónpero tampoco me funcionó:

Title: bash.exe
Shell: C:\cygwin\bin\bash.exe -l

Registro:

Directory
    shell
        Console2
            Open Console2 Here
            command
                "C:\Console2\Console.exe" -d "%V"

Las soluciones anteriores funcionan para las versiones de bash.exe y sh.exe que se incluyen con Git, pero no para las versiones que se incluyen con cygwin por algún motivo. Sigo buscando una razón para esto.

EDITAR

Seleccioné una respuesta a continuación, pero creo que la segunda solución anterior habría funcionado si hubiera creado el archivo .profile en la carpeta correcta. Seguí intentando crearlo en mi directorio de inicio normal en lugar del directorio de inicio utilizado por cygwin, razón por la cual nunca ejecutó el script. Esto me llevó a creer que el archivo .profile era innecesario. La respuesta que seleccioné (¡gracias Hugh!) explica claramente cómo bash utiliza cada uno de los scripts (.bash_profile, .bash_login, .profile y .bashrc), lo que me ayudó a darme cuenta de que los estaba colocando en el lugar equivocado.

Respuesta1

Desde elmanual,

Cuando se invoca Bash como un shell de inicio de sesión interactivo, o como un shell no interactivo con la opción --login, primero lee y ejecuta comandos del archivo /etc/profile, si ese archivo existe.

/etc/profilepor defecto contiene el siguiente código:

# Make sure we start in home unless invoked by CHERE
if [ ! -z "${CHERE_INVOKING}" ]; then
  unset CHERE_INVOKING
else
  cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!"
fi

Entonces, una solución sería crear un archivo por lotes de Windows que establezca la variable de entorno CHERE_INVOKINGantes de iniciar bash. Eso no es muy bueno.

Próximo,

Después de leer ese archivo, busca ~/.bash_profile, ~/.bash_login y ~/.profile, en ese orden, y lee y ejecuta comandos desde el primero que existe y es legible.

Estos scripts de perfil ejecutan de forma predeterminada su ~/.bashrcscript si existe. Poniendo cd -al final de mis .bashrctrabajos para mí (con el último Console2 y Cygwin bash):

echo 'cd -' >> ~/.bashrc

Por cierto, invoco Console2 ( Console.exe) sin argumentos: el Explorador de Windows garantiza que se inicie en el directorio en el que hice clic derecho. Estoy usando XP pero dudo que MS cambie este comportamiento en versiones posteriores de Windows. También dejo en blanco la opción "directorio de inicio" para mi pestaña Bash.

Respuesta2

Parece que no has creado ~/.profilecon lo siguiente:

cd -

https://superuser.com/a/387273/139371

información relacionada