Estoy tratando de configurar algo en un servidor que ejecuto, cada vez que entro cden una public_htmlcarpeta el 95% del tiempo hay algunos comandos que siempre ejecutaré para verificar ciertas cosas.
¿Hay alguna forma de conectarme cdpara que si el directorio es a public_html, ejecute automáticamente los comandos por mí?
Si no puedo conectarme al cdcomando, ¿hay alguna otra cosa que pueda hacer para lograr el resultado que busco?
Estoy ejecutando CentOS 5.8.
                    
                        bash
                                shell
                                cd-command
                                
                    
                    
                        TMH
fuente
                
                
            fuente

echo "Testing..."poco más arriba de la salida if, pero de nada. ¿Necesito hacer algo para aplicar estos cambios?. ~/.bash_profile/bin/cden mi CentOS, por lo que esta solución podría no funcionarcd -P public_htmlocd ~/public_htmlo tiene un comportamiento inesperado si no puedecdenpublic_html.Con
kshobash(ozsh):Con
zsh:(
chpwdEs un gancho de función que se llama cada vez que cambia el directorio de trabajo actual (por medio decd,pushd,popd...)).fuente
La envoltura
cd, un comando existente, no se recomienda.Una solución más universal sería definir un
chpwdenlace personalizado en Bash. (Según las etiquetas de esta pregunta, supongo que estás usando Bash)No hay un sistema de gancho completo diseñado en Bash en comparación con otros proyectiles modernos.
PROMPT_COMMANDLa variable se utiliza como una función deprecmdenlace, que es equivalente al enlace en ZSH,fish_prompten Fish. Por el momento, ZSH es el único shell que he conocido que tiene unchpwdgancho incorporado.chpwdGancho en BashSe proporciona un truco para configurar un
chpwdenlace equivalente en Bash basado enPROMPT_COMMAND.Ya que estamos detectando
PWDel cambio directamente, la solución trabaja concd,pushdypopd.Nota : La principal diferencia entre nuestra
chpwdimplementación en Bash ychpwden ZSH esPROMPT_COMMANDque no es compatible con un shell Bash no interactivo.Uso
Fuente: Crear chpwd Equivalent Hook en Bash desde mi esencia.
Para cualquiera que quiera una respuesta para ZSH. Use
chpwdgancho en ZSH. No defina lachpwd()función directamente. Más detalles aquí .fuente
No soy un experto en bash, pero tomaría la respuesta de @ UVV y la modificaría un poco para que haga esto:
public_html, que acababa de comprobar si hay algúnhook-scriptarchivo en el directorio de destino$1, por ejemplo,cd_hook.sh.hook-scriptexiste, ejecútelo y continúe con elcdEsto parece más genérico porque luego podrá aplicar el
cdgancho a cualquier directorio si así lo desea, simplemente agregando uncd_hook.shen dicho directorio.fuente
cdalgún lugar, busque un.bashcdarchivo y ejecútelo si existe.Usando el poderoso enfoque zsh en bash:
Primero, una manera fácil de extender bash:
~ / .runscripts
Incluir en .bashrc:
Puede crear ~ / .bashrc.d / cdhook con:
Ahora depende de usted reemplazar la función:
fuente