Soy un nuevo usuario de Ubuntu / Linux, me gustaría hacer una pregunta como mi título anterior.
Por ejemplo, tengo un archivo bash ./script
, me gustaría que se ejecute automáticamente cuando escribo cualquier línea de comando. Una vez que ejecuto línea de comandos pwd
, entonces el ./script
se ejecutará. Una vez que escriba la siguiente línea de comandos ls -la
, entonces el ./script
se ejecutará de nuevo.
command-line
bash
scripts
execute-command
Ender Phan
fuente
fuente
Respuestas:
Necesitas establecer
PROMPT_COMMAND
variable. Deman bash
:Por ejemplo, esto escribirá la fecha actual
/tmp/PC
cada vez que se ejecute un comando:fuente
echo $(date)
se ejecutará en el momento de la declaración, por lo que siempre se mostrará (guardará) al mismo tiempo.Está buscando una
PROMPT_COMMAND
variable de entorno, el valor de esta variable se ejecutará como comando, después de que se ejecute cada comando dado en el terminal, justo antes de mostrar el siguiente mensaje.Por ejemplo, configúrelo como:
Haga el script
/path/to/script
, ejecutable primero.Ahora el script se ejecutará después de cada comando.
Solo para tener en cuenta, si no desea que la variable se exporte, es decir, que sea una variable de shell en lugar de una variable de entorno, suelte
export
:De
man bash
:fuente
export
?export
hará que la variable seaPROMPT_COMMAND
una variable de entorno, es decir, la variable estará disponible para todos los procesos secundarios (por ejemplo, subcapas) del shell actual. Si solo desea limitarlo solo dentro de la sesión de shell actual (variable de shell), elimineexport
.export
no es una buena práctica aquí,PROMPT_COMMAND
solo debe establecerse en un archivo de inicio de shell interactivo y no debe ser visible en el entorno